嗯正则表达式验证

时间:2014-05-26 11:50:29

标签: regex

我需要使用正则表达式验证HHmm。 下面是我的代码 ([0-9] | 0 [0-9] | 1 [0-9] | 2 [0-3])[0-5] [0-9]

正在验证罚款 24:20 12:59 在12:60和2400失败 它也是通过123和127,128 .. 我需要两位数的分钟,甚至还需要1位数。

我怎么能避免这种情况。 在此先感谢

1 个答案:

答案 0 :(得分:0)

您需要为正则表达式定义边界。有了这些,您确定它不会简单地匹配字符串4:20中的24:20。所以,就这样,就是这样:

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

Demo

我做出的另一项更改是:我已将[0-9]|0[0-9]|1[0-9]合并为较短的[01]?[0-9]

如果您想匹配HH:mm格式,您只需在其中间放置一个:

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

Demo


如果你想限制4位数时间戳的匹配(所以不是159而只是0159),你应该只删除该表达式中的?

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

Demo