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

时间:2013-08-26 06:35:58

标签: javascript regex time

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

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

我对Regex知之甚少。那么有人可以帮我构建一个匹配我的场景的正则表达式吗?

1 个答案:

答案 0 :(得分: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
  • 在一行的末尾(位于字符串末尾或换行符之前)的位置$