标签:
问题描述: 允许1到6个英文字符或数字,按OK结束
有效等价类: 长度:1到6
字符:a-z,A-Z,0-9
无效等价类: 长度:0,7
字符:英文/数字以外字符,控制字符,标点符号
可得出:
| 有效等价类 | 无效等价类 |
| length:1-6 | length: ..-0&&7-.. |
| char: a-z&&A-Z&&0-9 | char: others |
所采用的测试用例及结果:
| 测试用例 | 测试结果 |
| 0 | 有效 |
| a | 有效 |
| Z | 有效 |
| 9 | 有效 |
| aA90 | 有效 |
| ababab | 有效 |
| 9a2b7c | 有效 |
| MMMMMM | 有效 |
| bbbbbb | 有效 |
| 12 | 有效 |
| 123 | 有效 |
| 1234 | 有效 |
| 12345 | 有效 |
| 123456 | 有效 |
| 1234567 | 无效 |
| abcdefg | 无效 |
| akbuGG | 有效 |
| 、 | 无效 |
| **** | 无效 |
| KGHGGGGG | 无效 |
| 1k2M3 | 有效 |
| 无效 |
编程测试实现关键代码为:
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可以匹配一个字母或数字
要做更精确地匹配,可以用[]表示范围,比如:
[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个字符)。
标签:
原文地址:http://www.cnblogs.com/iProg/p/4356599.html