Answers:
您的原始正则表达式有缺陷:04:00
例如,它不匹配。
这可能会更好:
^([0-1]?[0-9]|2[0-3]):[0-5][0-9]$
^([0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$
^(?:\d|[01]\d|2[0-3]):[0-5]\d$
HH:MM 12小时制,可选前导0
/^(0?[1-9]|1[0-2]):[0-5][0-9]\d$/
HH:MM 12小时制,可选前导0,强制性成语(AM / PM)
/((1[0-2]|0?[1-9]):([0-5][0-9]) ?([AaPp][Mm]))/
HH:MM 24小时领先0
/^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$/
HH:MM 24小时制,可选前导0
/^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$/
HH:MM:SS 24小时格式,开头为0
/(?:[01]\d|2[0-3]):(?:[0-5]\d):(?:[0-5]\d)/
^([0-2][0-3]|[0-1][0-9]):[0-5][0-9]+$
?
以上都不对我有用。最后,我使用了:
^([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]
(不允许使用一位数字)
[01]
就可以了;)
^(0?[1-9]|1[0-2]):[0-5][0-9]$
^([0-1][0-9]|2[0-3]):[0-5][0-9]$
强制前导零
您可以使用以下正则表达式:
^(2[0-3]|[01]?[0-9]):([1-5]{1}[0-9])$
如果要排除00:00,可以使用此表达式
^(2[0-3]|[01]?[0-9]):(0[1-9]{1}|[1-5]{1}[0-9])$
第二个表达式是更好的选择,因为有效时间是00:01到00:59或0:01到23:59。您可以根据需要使用其中任何一种。 Regex101链接
火柴:
2:9 2:09 2:59 02:9 02:09 02:59 23:59
用它:
^([0-9]|0[0-9]|1[0-9]|2[0-3]):([0-9]|[0-5][0-9])$
DateTime date1 = new DateTime(2008, 1, 1, 6, 9, 1); Console.WriteLine(date1.ToString("H:mm:ss", CultureInfo.InvariantCulture)); // Displays 6:09:01
。有关更多信息,请参见链接
如您所问,最左边的部分是可选的,我也做了最左边的部分和最右边的一些,请查看
^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]?$
它与
0:0
00:00
00:0
0:00
23:59
01:00
00:59
实时链接在这里
在凌晨4点以上对Manish M Demblani的贡献进行了轻微修改(我删除了秒部分,因为我的应用程序中不需要它)
^(([0-1]{0,1}[0-9]( )?(AM|am|aM|Am|PM|pm|pM|Pm))|(([0]?[1-9]|1[0-2])(:|\.)[0-5][0-9]( )?(AM|am|aM|Am|PM|pm|pM|Pm))|(([0]?[0-9]|1[0-9]|2[0-3])(:|\.)[0-5][0-9]))$
句柄:4am 4 am 4:00 4:00 am 4:00 pm 4.30 am等。
AM|am|aM|Am|PM|pm|pM|Pm
=[AaPp][Mm]
我的是:
^(1?[0-9]|2[0-3]):[0-5][0-9]$
这要短得多
用几个例子进行了测试
比赛:
而且不匹配任何无效实例,例如25:76等...
09:30
不匹配
您可以尝试以下
^\d{1,2}([:.]?\d{1,2})?([ ]?[a|p]m)?$
它可以检测以下模式:
2300
23:00
4 am
4am
4pm
4 pm
04:30pm
04:30 pm
4:30pm
4:30 pm
04.30pm
04.30 pm
4.30pm
4.30 pm
23:59
0000
00:00
检查我为寻找用户指定的时间戳而构建的这个masterfull时间戳检测器正则表达式,包括但不限于它的示例;
8:30-9:40
09:40-09 : 50
09 : 40-09 : 50
09:40 - 09 : 50
08:00to05:00
08 : 00to05 : 00
08:00 to 05:00
8am-09pm
08h00 till 17h00
8pm-5am
08h00,21h00
06pm untill 9am
只要时间包含数字,它还会拾取更多
RegExr requires a modern browser. Please update your browser to the latest version and try again.
...我什至看不到...:-/