我在构建验证中使用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">
但它没有验证,它说无效时间,我认为我的正则表达式是对的,但不确定这里发生了什么......
答案 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">