[英]html5 time validation issue using pattern
我在构建验证中使用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">
但这并没有验证,它说的是无效时间,我认为我的正则表达式是正确的,但不确定这里发生了什么...
删除正斜杠:它们是JavaScript regex文字语法的一部分,而不是常规regex语法的一部分。 您实际上并不需要^
和$
,因为对于输入元素模式而言,它们是隐含的。
您在示例中设置的值( 05:15 PM
也不会与您的正则表达式匹配,因为其中有空格并且“ PM”用大写字母表示。 为此:
pattern="\d{1,2}:\d{2}( ?[apAP][mM])?"
注意,对于HTML5的输入pattern
属性,你可以不设置i
不区分大小写标志的JavaScript(和一些其他的正则表达式实现)允许。 根据规范,它确实对模式本身使用了JS语法,但是“它是在禁用了global,ignoreCase和multiline标志的情况下编译的”。
尝试这个
<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">
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.