zoukankan      html  css  js  c++  java
  • 等价类测试——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个字符)。

  • 相关阅读:
    (OK) VirtualBox 5.0.10 中 Fedora 23 在安装了增强工具后无法自动调节虚拟机分辨率的问题
    (OK) install-fedora23—gnome classic—dnf—gdm—multi-user—graphical
    (OK) fedora23——add “opening terminal” in the menu of right click
    (OK) Install Docker on Fedora 23
    (OK) 运行cBPM in Fedora23
    错误:‘bOS::SQL::SQLCommand::SQLOperation’既不是类也不是命名空间
    My enum is not a class or namespace
    【t049】&&【u001】足球
    【u002】数列排序(seqsort)
    【u003】计算概率
  • 原文地址:https://www.cnblogs.com/iProg/p/4356599.html
Copyright © 2011-2022 走看看