我想要一个正则表达式来匹配HH:MM格式的时间.这是我拥有的,它的工作原理:
^[0-2][0-3]:[0-5][0-9]$
Run Code Online (Sandbox Code Playgroud)
这匹配从00:00到23:59的所有内容.
但是,我想改变它,所以0:00和1:00等也匹配以及00:00和01:30.即使最左边的数字可选,以匹配HH:MM以及H:MM.
任何想法如何改变?我需要这个工作在JavaScript和PHP.
Pet*_* O. 335
您的原始正则表达式存在缺陷:04:00
例如,它不匹配.
这可能会更好:
^(0[0-9]|1[0-9]|2[0-3]|[0-9]):[0-5][0-9]$
Run Code Online (Sandbox Code Playgroud)
小智 48
以上都不适合我.最后我使用了:
^([0-1]?[0-9]|2[0-3]):[0-5][0-9]$ (js engine)
Run Code Online (Sandbox Code Playgroud)
逻辑:
第一个数字(小时)是:0到19之间的数字 - > [0-1]?[0-9]
(允许单个数字)
或
20 - 23之间的数字 - >2[0-3]
第二个数字(分钟)始终是介于00和59之间的数字 - > [0-5][0-9]
(不允许单个数字)
Nik*_*hak 33
HH:MM 12小时格式,可选前导0
/^(0?[1-9]|1[0-2]):[0-5][0-9]\d$/
Run Code Online (Sandbox Code Playgroud)HH:MM 12小时格式,可选前导0,强制性meridiems(AM/PM)
/((1[0-2]|0?[1-9]):([0-5][0-9]) ?([AaPp][Mm]))/
Run Code Online (Sandbox Code Playgroud)HH:MM 24小时领先0
/^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$/
Run Code Online (Sandbox Code Playgroud)HH:MM 24小时格式,可选前导0
/^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$/
Run Code Online (Sandbox Code Playgroud)HH:MM:SS 24小时格式,领先0
/(?:[01]\d|2[0-3]):(?:[0-5]\d):(?:[0-5]\d)/
Run Code Online (Sandbox Code Playgroud)小智 7
你可以使用这个24H,秒是可选的
^([0-1]?[0-9]|[2][0-3]):([0-5][0-9])(:[0-5][0-9])?$
Run Code Online (Sandbox Code Playgroud)
小智 5
令人惊讶的是,我发现实际上所有这些都不能完全覆盖它,因为它们不适用于 0:0 的较短格式午夜,而且有些也不适用于 00:00,我使用并测试了以下内容:
^([0-9]|0[0-9]|1?[0-9]|2[0-3]):[0-5]?[0-9]$
Run Code Online (Sandbox Code Playgroud)
小智 5
最好的方法是 HH:MM,无需承担任何风险。
^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
221413 次 |
最近记录: |