输入类型时间的正则表达式模式匹配

时间:2016-11-16 05:21:29

标签: angularjs regex html5

要检查输入类型“时间”字段是否已完成(上午09:00),我使用了正则表达式。

ng-pattern="\b((1[0-2]|0?[1-9]):([0-5][0-9]) ([AaPp][Mm]))"

但是在同一个正则表达式中,我想检查输入字段是否为空。有关更多信息,时间字段可以为空或已完成(例如:)(上午09:30)

任何人都可以帮我解决这个问题。

2 个答案:

答案 0 :(得分:2)

ng-pattern中,您需要使用

ng-pattern="/^(?:(?:1[0-2]|0?[1-9]):[0-5]\d\s*[AaPp][Mm])?$/"

如果您需要避免前导/尾随空格,请添加ng-trim="false"

请参阅此regex demo

(?:...)?可选的非捕获组是整个模式的包装器,它是可选的,即可以匹配空字符串。

^锚点只会在字符串的开头匹配,而$会将匹配项锚定在字符串的末尾,以便整个字符串匹配。

答案 1 :(得分:0)

如果有人像我一样正在寻找欧洲时间格式(00:00-23:59)的正则表达式,那么这里是该正则表达式:

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

希望这可以帮助某人节省一两分钟。