小时,分钟和秒格式的正则表达式HH:MM:SS

时间:2014-06-22 03:33:15

标签: regex

我试图为HH实现正则表达式:MM:SS,例如:

07:15:30

但我无法让它发挥作用

现在我正在使用:

([01]?[0-9]|2[0-3]):[0-5][0-9]

有任何线索吗?

1 个答案:

答案 0 :(得分:19)

^(?:([01]?\d|2[0-3]):([0-5]?\d):)?([0-5]?\d)$

<强>解释

^                   #  Start of string
(?:                 #  Try to match
([01]?\d|2[0-3]):   #  HH:
([0-5]?\d):         #  MM:
)?                  #  (entire group)
([0-5]?\d)          #  SS
$                   #  End of string

使用了正则表达式备忘单中的一些表达式:

http://www.cheatography.com/davechild/cheat-sheets/regular-expressions/

编辑#1

^(?:([01]?\d|2[0-3]):([0-5]?\d):)?([0-5]\d)$

删除了?上的SS,如果只输入1位数字,则会返回false。

编辑#2

^([0-5]\d):([0-5]\d):([0-5]\d)$

稍微更改了HH部分,如果用户只选择HH而没有MMSS,则会返回false。

编辑#3

感谢此comment此表达式添加到此列表

^((?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d$)