• 等价类测试——Web开发中对于用户名输入的合法性验证


    问题描述:  允许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个字符)。

  • 相关阅读:
    [结题报告]10235 Simply Emirp Time limit: 3.000 seconds
    [杭电ACM]1720A+B Coming
    [结题报告]10041 Vito's Family Time limit: 3.000 seconds
    mysqlvarchar、text 类型到底能存储多大字符?
    mysql项目更换数据源为oralce后项目调整
    Oracle创建定时任务执行函数
    IOS手机访问网页window.location.href跳转新页面第一次可以第二次报错失效
    logrotate日志分割
    查找一批设备的在线情况
    pkill 用法例子
  • 原文地址:https://www.cnblogs.com/iProg/p/4356599.html
Copyright © 2020-2023  润新知