繁体   English   中英

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

[英]Regular Expression - How can I match all numbers less than or equal to Twenty Four?

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

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

我试过了

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

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

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

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

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


您也可以使用

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

Regex101演示

说明:

  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

演示版

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


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

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

Regex101演示

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

试试看。看演示。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM