使用模式的html5时间验证问题

时间:2014-11-16 11:30:00

标签: javascript regex html5

我在构建验证中使用HTML5但是对于Time,我正在唱下面的代码 代码非常简单,因为它只是检查时间的格式,我不知道我在这里做错了什么

<input name="taskStartTime" type="text" value="05:15 PM" placeholder="Enter a valid start time." size="10" pattern="/^\d{1,2}:\d{2}([ap]m)?$/" title="Enter Valid Time">

但它没有验证,它说无效时间,我认为我的正则表达式是对的,但不确定这里发生了什么......

2 个答案:

答案 0 :(得分:3)

删除正斜杠:它们是JavaScript正则表达式文字语法的一部分,而不是一般正则表达式语法的一部分。您并不真正需要^$,因为它们是隐含的输入元素模式。

您在示例中设置的值05:15 PM也不匹配您的正则表达式,因为它有一个空格,因为&#34; PM&#34;是在首都。为此:

pattern="\d{1,2}:\d{2}( ?[apAP][mM])?"

请注意,对于html5输入pattern属性,您无法设置JavaScript(以及其他一些正则表达式实现)允许的i不区分大小写的标记。根据规范,它确实使用了JS语法来模式本身,但&#34;它被编译&#34;禁用全局,ignoreCase和多行标志&#34;。

答案 1 :(得分:0)

试试这个

<input name="taskStartTime" type="text" value="05:15 PM" placeholder="Enter a valid start time." size="10" pattern="^\d{1,2}:\d{2}\s([AP]M)?$" title="Enter Valid Time">