【问题标题】:Regex to restrict a string for no more than 5 consecutive numeric characters and no more than 8 numeric characters in total正则表达式限制字符串不超过 5 个连续数字字符,总共不超过 8 个数字字符
【发布时间】:2021-10-23 15:13:10
【问题描述】:

我正在尝试构建一个正则表达式,将字符串限制为不超过 5 个连续数字字符且总共不超过 8 个数字字符。

例如:

  • 12345 => 是的
  • Yograj => 是的
  • Yograj123456 => 错误
  • 12345Yograj => 是的
  • 12345Yograj12345 => 是的
  • Yograj123456Yograj => 错误
  • Yograj123Varsolkar456789 => 错误
  • 123Yograj45678Varsolkar => 是的
  • A1B2C3D4e5f6g7h8i9j0 => 错误
  • Yograj 890 Varsolkar 78455 => 错误

到目前为止,我能够创建这个: /^((\d{0,5}[a-zA-Z]+\d{0,5})+|\d{0,5})$/

在此先感谢

【问题讨论】:

    标签: javascript html regex validation input


    【解决方案1】:

    带有一些交替的否定前瞻在这里可能会有所帮助:

    ^(?!.*\d{6}|(?:.*\d){9})[A-Za-z\d]+$
    

    在线查看demo

    • ^ - 起跑线锚点。
    • (?! - 打开负前瞻:
      • .*\d{6} - 0+ 个字符(换行符除外,后跟 6 位数字)。
      • | - 或者:
      • (?:.*\d){9} - 一个由 0+ 个字符组成的非捕获组,除了换行符后跟一个匹配 9 次的单个数字。
      • ) - 关闭负前瞻。
    • [A-Za-z\d]+ - 匹配 1+ 个字母数字字符。
    • $ - 终点线锚。

    【讨论】:

    • 这有帮助。效果很好。感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-26
    • 1970-01-01
    相关资源
    最近更新 更多