首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >匹配HH:MM时间格式的正则表达式

匹配HH:MM时间格式的正则表达式
EN

Stack Overflow用户
提问于 2011-09-24 11:14:44
回答 21查看 334.3K关注 0票数 217

我想要一个匹配HH:MM格式的时间的regexp。这就是我所拥有的,并且它是有效的:

代码语言:javascript
复制
^[0-2][0-3]:[0-5][0-9]$

从00:00到23:59都匹配。

但是,我想更改它,以便0:00和1:00等也匹配00:00和01:30。即使最左边的数字可选,以匹配HH:MM和H:MM。

有什么想法可以改变这一点吗?我需要这在javascript以及php中工作。

EN

回答 21

Stack Overflow用户

回答已采纳

发布于 2011-09-24 11:19:10

您最初的正则表达式有缺陷:例如,它与04:00不匹配。

这可能会更好地工作:

代码语言:javascript
复制
^([0-1]?[0-9]|2[0-3]):[0-5][0-9]$
票数 442
EN

Stack Overflow用户

发布于 2018-07-05 00:16:02

时间的正则表达式

  • HH:MM 12小时制,可选前导0

/^(0?1-9|10-2):0-5$/

  • HH:MM 12小时制,可选前导0,必选子午线(AM/PM)

/((10-2|0?1-9):(0-5) ?(AaPp))/

具有领先0的

  • HH:MM 24小时

/^(00-9|10-9|20-3):0-5$/

  • HH:MM 24小时制,可选前导0

/^(0-9|00-9|10-9|20-3):0-5$/

前导为0

  • HH:MM:SS 24小时格式

/(?:01\d|20-3):(?:0-5\d):(?:0-5\d)/

票数 127
EN

Stack Overflow用户

发布于 2013-11-21 22:03:01

以上这些对我来说都不起作用。最后,我使用了:

代码语言:javascript
复制
^([0-1]?[0-9]|2[0-3]):[0-5][0-9]$ (js engine)

逻辑:

第一个数字(小时)是:0到19之间的数字--> [0-1]?[0-9] (允许个位数)

20 - 23 --> 2[0-3]之间的数字

第二个数字(分钟)始终是00到59之间的数字--> [0-5][0-9] (不允许一个数字)

票数 51
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7536755

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档