【问题标题】:JavaScript validation for regex pattern正则表达式模式的 JavaScript 验证
【发布时间】:2017-04-12 19:54:37
【问题描述】:

我必须验证以下场景:“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>

【问题讨论】:

  • 当问题与此插件无关时,请不要使用 jQuery Validate 标签。已编辑。

标签: javascript regex validation


【解决方案1】:

第一个问题是您转义了 [ 字符,因此,将字符类转换为字符序列,如果您不这样做,[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) 在您需要检查字符串是否与模式匹配时看起来更可取(如果找到匹配项,它不会返回包含匹配数据的数组,只返回真或假)。

【讨论】:

    猜你喜欢
    • 2014-05-01
    • 1970-01-01
    • 2017-03-03
    • 2013-08-24
    • 2012-03-29
    • 2015-05-14
    • 1970-01-01
    • 2019-08-03
    • 2014-09-12
    相关资源
    最近更新 更多