24小时时正则表达式无法使3位数小时无效

时间:2014-12-23 13:38:30

标签: php regex time

我正在尝试使用PHP正则表达式验证24小时的时间HH:MM。我发现了很多关于它的问题,比如:

但是所有这些都无法使3位数小时失效,例如111:00(在线测试人员说他们匹配,这是因为正则表达式不考虑第三位数字的存在)。这是一个例子:https://www.regex101.com/r/cO9aE7/1

如何更正这些以使此案无效?

2 个答案:

答案 0 :(得分:1)

这个正则表达式将匹配一个24小时的样式时间,只要它是字符串中唯一的东西:

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

或者,这个将匹配字符串中任何地方的24小时时间:

\b([01]\d|2[0-3]):[0-5]\d\b

答案 1 :(得分:0)

^(2[0-3]|1[0-9]|0[0-9]|[^0-9][0-9]):([0-5][0-9])$