等價類測試——Web開發中對於用戶名輸入的合法性驗證

問題描述:  容許1到6個英文字符或數字,按OK結束javascript

有效等價類: 長度:1到6html

                 字符:a-z,A-Z,0-9java

無效等價類: 長度:0,7正則表達式

                 字符:英文/數字之外字符,控制字符,標點符號編程

可得出:測試

有效等價類 無效等價類
length:1-6             length: ..-0&&7-..    
char:  a-z&&A-Z&&0-9 char:    others

所採用的測試用例及結果:spa

測試用例                       測試結果                       
0 有效
a 有效
Z 有效
9 有效
aA90 有效
ababab   有效
9a2b7c 有效
MMMMMM 有效
bbbbbb 有效
12 有效
123 有效
1234 有效
12345 有效
123456 有效
1234567 無效
abcdefg 無效
akbuGG 有效
無效
**** 無效
KGHGGGGG 無效
1k2M3 有效
  無效

 

 

 

編程測試實現關鍵代碼爲:code

 1 <html>
 2 
 3 <head>
 4 <script type="text/javascript">
 5 function equalTest(){
 6    var name = document.getElementById('name').value;
 7    if(name == null)
 8    {
 9         window.alert("用戶名不可爲空");
10    }
11    else
12    {
13         var nLen=name.length;
14         reg=/^[a-zA-Z0-9_]+$/; 
15        
16         if(nLen<1||nLen>6)
17         {
18             window.alert("非法")
19         }
20         else if(!reg.test(name))          
21         {
22             window.alert("非法");
23         } 
24         else return;
25    }
26 }
27 </script>
28 </head>
29 
30 <body>
31 <input type="text" id="name" /><br/>
32 <input type="button" onclick="equalTest()" value="肯定" />
33 </body>
34 
35 </html>

 

PS:在正則表達式中,若是直接給出字符,就是精確匹配。用\d能夠匹配一個數字,\w能夠匹配一個字母或數字htm

    要作更精確地匹配,能夠用[]表示範圍,好比:blog

  • [0-9a-zA-Z\_]能夠匹配一個數字、字母或者下劃線;

  • [0-9a-zA-Z\_]+能夠匹配至少由一個數字、字母或者下劃線組成的字符串,好比'a100''0_Z''Py3000'等等;

  • [a-zA-Z\_][0-9a-zA-Z\_]*能夠匹配由字母或下劃線開頭,後接任意個由一個數字、字母或者下劃線組成的字符串,也就是Python合法的變量;

  • [a-zA-Z\_][0-9a-zA-Z\_]{0, 19}更精確地限制了變量的長度是1-20個字符(前面1個字符+後面最多19個字符)。

相關文章
相關標籤/搜索