問題描述: 容許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個字符)。