正则表达式 - 如何匹配小于或等于二十四的所有数字?

时间:2016-01-13 04:43:44

标签: javascript regex

我对正则表达式有点新,并且正在编写需要使用正则表达式的数量字段的验证。

如何匹配小于或等于24的所有数字?

我试过

var pat = /^[1-9]$|^[1-2]\d$|^3[0-6]$/;

但这只匹配1-24。是否有一种简单的方法可以匹配小于或等于24的所有可能数字?

2 个答案:

答案 0 :(得分:4)

我不建议您使用正则表达式来检查数字是否在范围之间。要比较数字,应使用比较运算符。

if (number >= 0 && number <= 24)

但是,如果这不可行/可能,您可以使用正则表达式。

您也可以使用

^(2[0-4]|[01]?[0-9])$

Regex101 Demo

<强>解释

  1. ^:行首锚
  2. 2[0-4]:匹配2后跟0到4之间的任意数字 - 匹配20-24
  3. |:正则表达式中的OR条件
  4. [01]?[0-9][01]?:可选地匹配0或1。 [0-9]:在0到9范围内匹配任意数字 - 匹配0-19
  5. Demo

    input:valid {
      color: green;
    }
    input:invalid {
      color: red;
    }
    <input pattern="(2[0-4]|[01]?[0-9])" />

    您可以使用以下正则表达式

    ^(2[0-4])|(^[01]?[0-9])$
    

    Regex101 Demo

答案 1 :(得分:0)

^(?:[0-9]|[1][0-9]|2[0-4])$

试试这个。看看演示。

https://regex101.com/r/iJ7bT6/3