【问题标题】:One or two numeric digits Regex一位或两位数字正则表达式
【发布时间】:2012-06-02 00:44:40
【问题描述】:

我有以下代码。它仅在我有 2 位数字时才有效。如果我有 1 位数字不起作用。我想在这两种情况下工作:一位或两位数。
var numberRegex = /^[1-9][0-9]$/;
我尝试过这样的事情,但不幸的是不起作用:
var numberRegex = /^[1-9]?[1-9][0-9]$/;
感谢支持。

【问题讨论】:

    标签: javascript regex numbers digits


    【解决方案1】:

    试试这个:

    /^\d{1,2}$/;
    

    阅读您所拥有的内容,您似乎不想接受01 之类的数字。

    /^\d{1}|[1-9]\d{1}$/;
    

    【讨论】:

    • 第二个正则表达式不太正确。 | 的优先级低于 ^$。您还可以通过将[1-9] 设为可选来进行简化。 /^[1-9]?\d{1}$/
    • 刚刚意识到你可以做得更好 - \d{1} 是多余的,相当于 \d
    • 我会选择/^[1-9]?\d$/ 不需要交替,只需将前导数字设为可选。
    • @MarkReed,您的决定很酷,但一位数字零对您的正则表达式有效
    • 是的。 0 本身是有效的。这是故意的。
    【解决方案2】:

    试试这个。

    /^[0-9]|[0-9][0-9]$/
    

    这应该可以完成工作。使用 Or 运算符即可。

    【讨论】:

      【解决方案3】:

      这行得通:

      /^([0-9]{0,1}([1-9][0-9]){0,2})$/
      

      【讨论】:

        【解决方案4】:

        试试这个正则表达式:/^[1-9]\d{0,1}$/

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-10-14
          • 1970-01-01
          • 2021-05-02
          • 2021-07-30
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多