格式为H:mm

时间:2019-06-24 01:40:56

标签: javascript regex time-format

我有/^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$/时间的正则表达式

这也会验证24小时格式。

如果我不想接受前导零,则正则表达式应该是什么?

示例:

9:31不是09:31

  

更新:

此问题:Regular expression for matching HH:MM time format接受带前导零和不带前导零的内容。但是我正在寻找一个不接受零领先的24小时正则表达式。不是重复的

我尝试过:

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

但不接受0:24

有什么想法吗?谢谢

2 个答案:

答案 0 :(得分:2)

捕获组中的第二个交替将小时数与前导零匹配:

0[0-9]

因此,只需将其删除即可。如果需要,您还可以通过使用1?而不是前两个替换,并使用\d而不是[0-9]来使图案更干燥,

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

https://regex101.com/r/jS9TTj/1

答案 1 :(得分:0)

我的答案是:^([0-9]|1[0-9]|2[0-3]):[0-5][0-9]$

我正在寻找不接受前导零的正则表达式

示例:

  • 0:30
  • 9:30(不是09:30)
  • 0:00(午夜12点)

https://regex101.com/r/hcjjHN/2