-2

我尝试了很多组合

\d{1,2}:\d{2}

验证一段时间(即:0:33 或 12:33)。

因此,在大多数情况下,上述表达式有效,但我还需要 1) 验证 ":33" 和 2) 使 "00:33a" 无效

我用谷歌搜索并尝试结合 \s* 但它仍然不满足这两个条件。

任何帮助表示赞赏。

4

3 回答 3

1

如果您只想匹配有效时间(例如 23:59,而不是 25:03 等),您可以尝试以下正则表达式:

^([01]?[0-9]|2[0-3]):[0-5]?[0-9]$
于 2013-03-15T12:12:43.337 回答
0

更仔细地查看您的问题并扩展 Gijs 的答案,这可能就是您所追求的......

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

允许 ':mm'、'h:mm' 或 'hh:mm'。

我不确定 (?: 非捕获组有多普遍-我已经习惯了.Net。

于 2013-03-15T12:44:44.837 回答
0

我相信你只需要指定开始 ^ 和结束 $ 字符串符号

^\d{1,2}:\d{2}$

这样 00:33a 将无效

于 2013-03-14T02:13:13.433 回答