正则表达式以 (H)H:mm 格式验证最小和最大小时数



我有一个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)-2021或可选的01后跟任何一个数字,然后
      • :- 冒号
      • [0-5]d- 从05的数字,然后是任意一位数字
    • |- 或
    • 22:00-22:00字符串
  • )- 外部组的结束
  • $- 字符串结尾。

最新更新