我有一个JavaScript应用程序,我正在尝试让以下正则表达式使用(H)H:mm
格式,从00:01
或(0:01
(到22:00
:^(2[0-2]|[0-1]?[d]):[0-5][d]$
问题是它还允许 22 之后的任何分钟,例如22:59
是有效的,我想将其限制为22:00
.
已经搜索了其他帖子,但找不到任何符合我的条件的帖子。欢迎任何建议,因为此时我不确定我是否可以使用纯正则表达式来做到这一点,或者我是否应该求助于 JavaScript
您可以为22:00
值创建一个单独的替代项
/^(?:(?:2[01]|[01]?d):[0-5]d|22:00)$/
请参阅正则表达式演示。
图案详细信息
^
- 字符串的开头(?:
- 用于使定位点应用于组中的所有替代项的外部非捕获组的开始(?:2[01]|[01]?d):[0-5]d
:(?:2[01]|[01]?d)
-20
、21
或可选的0
或1
后跟任何一个数字,然后:
- 冒号[0-5]d
- 从0
到5
的数字,然后是任意一位数字
|
- 或22:00
-22:00
字符串
)
- 外部组的结束$
- 字符串结尾。