正则表达式模式的 JavaScript 验证

标签 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>

最佳答案

第一个问题是您转义了 [ 字符,因此,将字符类转换为字符序列,如果您没有这样做,则会将 [a-zA-Z0 -9]{5} 将匹配 5 个字母数字字符,无论数字和字母的顺序如何,并且由于不使用字符串 anchor 结束符,因此还允许其后有任何特殊字符。

你的正则表达式应该是这样的

/^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)。

关于正则表达式模式的 JavaScript 验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43378517/

相关文章:

javascript - TypeError : res. json 不是函数

javascript - 检查 JavaScript 中是否存在对象

javascript - 带有复选框验证的 Asp.net Web 表单无法正常工作

java - Spring validator 抛出异常

javascript - Web 音频 API 中 analyser.getByteFrequencyData 返回值的范围是多少?

javascript - AngularJS 自定义日期选择器指令

ruby - 使用 ruby​​ 将大量关键字与字符串匹配

Regexp::Grammars 在调试时成功,在没有调试时失败

javascript - 从成功的正则表达式中获取字符串?

validation - 是否有必要以递归方式编写 Haskell 泛型?