我试图验证时隙的input字段,例如-10:00AM TO 2:30PM或11AM TO 3PM等,时间应该在12小时时钟,并应通过TO或to分隔。我可以在html中使用的正则表达式应该是什么?
input
10:00AM TO 2:30PM
11AM TO 3PM
TO
to
dm7nw8vv1#
第一关是非常具体的,时间格式也就是说,你很可能会遇到问题,与替代当地人(如英国与主要24小时时间)。如果是基于HTML的UI,我建议只使用两个输入类型为“时间”的字段,如果是更丰富的UI框架,则使用两个时间选择器控件。也就是说,这种模式似乎并不复杂。
为了匹配这个字符串
[10]{0,1}\d:[0-5]\d(AM|PM) (to|TO) [10]{0,1}\d:[0-5]\d(AM|PM)
这样做不够聪明,不能匹配像19:00PM to 00:59AM这样的字符串。我假设你想在正则表达式中有捕获组,这样你就可以提取开始和结束时间了?如果是这样的话,试试这样的
19:00PM to 00:59AM
(?<starthours>[10]{0,1}\d):(?<startmins>[0-5]\d)(?<startampm>AM|PM) (to|TO) (?<endhours>[10]{0,1}\d):(?<endmins>[0-5]\d)(?<endampm>(AM|PM))
请使用像regex101这样的网站来帮助你自己解决这些问题。
8ehkhllq2#
尝试以下操作-regex101
^(1[0-2]|0?[1-9]):([0-5]?[0-9])(AM|PM) (to|TO) (1[0-2]|0?[1-9]):([0-5]?[0-9])(AM|PM)$
2条答案
按热度按时间dm7nw8vv1#
第一关是非常具体的,时间格式也就是说,你很可能会遇到问题,与替代当地人(如英国与主要24小时时间)。
如果是基于HTML的UI,我建议只使用两个输入类型为“时间”的字段,如果是更丰富的UI框架,则使用两个时间选择器控件。
也就是说,这种模式似乎并不复杂。
为了匹配这个字符串
这样做不够聪明,不能匹配像
19:00PM to 00:59AM
这样的字符串。我假设你想在正则表达式中有捕获组,这样你就可以提取开始和结束时间了?
如果是这样的话,试试这样的
请使用像regex101这样的网站来帮助你自己解决这些问题。
8ehkhllq2#
尝试以下操作-regex101