时间格式的正则表达式,如 DD:HH:MM:SS

Regular Expression For Time Format Like DD:HH:MM:SS

本文关键字:HH MM SS DD 格式 正则表达式 时间      更新时间:2023-09-26

我正在尝试对基于时间的文本框进行验证。在这方面,我需要这样的格式。 00:00:00:00 ( Days:Hours:Minutes:Seconds (.有效时间99:23:59:59, 01:01:01:01, 25:00:20:55

无效时间99:24:60:60, 99:2:1:1

我对正则表达式没有太多了解。那么谁能帮我构建一个与我的场景相匹配的正则表达式?

试试这个模式,

^'d{2}:([0-1]'d|2[0-3]):([0-5]'d):([0-5]'d)$
  • 看到这里

简要说明:

  • 断言行首的位置(字符串开头或换行符之后(^
  • 匹配个位数 0..9 'd{2}
    • 正好 2 倍{2}
  • 匹配字符":"字面意思:
  • 匹配
  • 下面的正则表达式并将其匹配项捕获到反向引用编号 1 ([0-1]'d|2[0-3])
    • 匹配下面的正则表达式(仅当此替代表达式失败时才尝试下一个替代项([0-1]'d
      • 匹配"0"和"1"之间的单个字符[0-1]
      • 匹配个位数 0..9 'd
    • 或者匹配下面的正则表达式 2(如果这个不匹配,整个组都会失败(2[0-3]
      • 从字面上匹配字符"2"2
      • 匹配"0"和"3"之间的单个字符[0-3]
  • 匹配字符":"字面意思:
  • 匹配
  • 下面的正则表达式并将其匹配项捕获到反向引用编号 2 ([0-5]'d)
      匹配"0">
    • 和"5"之间的单个字符 «[0-5]»
    • 匹配个位数 0..9 'd
  • 匹配字符 ":" 字面意思:
  • 匹配
  • 下面的正则表达式并将其匹配项捕获到反向引用编号 3 «([0-5]''d(»
    • 匹配"0"和"5"之间的单个字符[0-5]
    • 匹配个位数 0..9 'd
  • 断言行尾的位置(字符串末尾或换行符之前($