正则表达式模式的JavaScript验证

时间:2017-04-12 19:54:38

标签: javascript regex validation

我必须验证以下场景:“15AB12”条件:(1)第一个元素应该是1 +一个数字+两个字母+2个数字。我需要为文本框验证这一点。这是我的代码。我不知道我错过了哪里!!!

  <label>Username(6):</label>
    <input id='username' type='text'>
    <p id="p2"></p>
    <button id="submit" onclick= "pepe(); return false"">ChecForm</button> 

      <script>
        function pepe(){
       if (!($("#username").val().match(/^1\[a-zA-Z0-9]{5}/)))
      document.write(" true");
      else
      document.write("false");
      }
      </script>

1 个答案:

答案 0 :(得分:2)

第一个问题是你转义了一个[字符,因此,如果你不这样做,将一个字符类变成一个字符序列和evne,[a-zA-Z0-9]{5}将匹配5个字母数字字符,而不管数字和字母的顺序,它也允许在它们之后的任何特殊字符,因为没有使用字符串锚的结尾。

你的正则表达式应该是

/^1[0-9][a-zA-Z]{2}[0-9]{2}$/

请参阅regex demo

详细说明:

  • ^ - 字符串开头
  • 1 - 1数字
  • [0-9] - 任何一位数字
  • [a-zA-Z]{2} - 2个ASCII字母
  • [0-9]{2} - 任意2位数字
  • $ - 字符串结束。

此外,当您需要检查字符串是否与模式匹配时,RegExp#test(String)看起来更合适(如果找到匹配项,它不会返回带匹配数据的数组,只有true或false)。