【问题标题】:regex 1-9999 for form validation正则表达式 1-9999 用于表单验证
【发布时间】:2014-07-23 15:03:45
【问题描述】:

我正在尝试编写一些表单验证,我需要输入之一为 1-9999。我对正则表达式一无所知(以前从未使用过它们),这是我的第一次尝试

/^([1-9][1-9]|[1-9]|[1-9]\d|9999)$/

似乎不想工作,谁能帮帮我?谢谢!

【问题讨论】:

  • 如果您在谈论 HTML 表单,请考虑 <input type="number">
  • 您使用什么语言?为什么不只使用整数比较?使用正则表达式来验证这样的事情似乎很愚蠢而且有点矫枉过正
  • 如果您从未使用过正则表达式,我建议您阅读一些教程(那里有很多)。如果您不需要正则表达式,则必须回到这里。 :(

标签: regex numbers


【解决方案1】:

试试下面的正则表达式,

^(?:[1-9][0-9]{3}|[1-9][0-9]{2}|[1-9][0-9]|[1-9])$

DEMO

【讨论】:

    【解决方案2】:

    这不排除零,但/^\d{1,4}$/ 应该可以解决问题。

    【讨论】:

      【解决方案3】:

      试试这个

      ^([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9])$
      

      【讨论】:

      • 这个模式非常适合我在 Angular 中的用例:<input type="number" class="form-control form-control-lg" name="play-time" [(ngModel)]="playTime" min="1" max="9999" minLength="1" maxlength="4" pattern="^([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9])?$" digitOnly required />
      【解决方案4】:

      此正则表达式不应匹配以 0 开头的数字,从 0 开始

      正则表达式:/^(?!(0\d))\d{1,4}$/

      正则表达式(不包括零):/^(?!(0))\d{1,4}$/

      测试:https://regex101.com/r/zfCKel/2

      【讨论】:

      • 这实际上不适用于排除0。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-30
      • 1970-01-01
      • 1970-01-01
      • 2011-12-08
      相关资源
      最近更新 更多