2017-07-17 36 views
0

我构造了一个正则表达式来匹配日期时间格式dd.mm.yyyy hh:ii。 这对正则表达式测试器很有效:https://regex101.com/r/AX4nxj/1 但是,当在输入字段的模式属性中使用它时,它根本不验证。你甚至可以输入“a”并提交。正则表达式不工作在html输入模式

<input type="text" required="required" pattern="(?:(?:0[1-9]|1[0-9]|2[0-9])|(?:(?!02)(?:0[1-9]|1[0-2])-(?:30))|(?:(?:0[13578]|1[02])-31))\.(?:0[1-9]|1[0-2])\.(?:19|20)[0-9]{2}\ (?:[01]\d|2[0-3]):[0-5]\d" name="formName" /> 

你可以自己尝试一下:http://jsfiddle.net/h2uwhL70/

这是为什么? :(HTML是否使用不同的正则表达式的格式或什么

+0

唯一的错误是一个空格前的反斜杠。 –

回答

1

我觉得你的正则表达式是有点verborage与错:?d那么试试这个:

^(0+[1-9]|[1-2]+[0-9]|3+[0-1]).(0+[1-9]|1+[0-2]).\d{4} (00|[0-9]|1[0-9]|2[0-3]):([0-9]|[0-5][0-9])$ 
+1

也许只是将\ d \ d \ d \ d翻转到\ d {4},但我喜欢它! – sniperd

+0

谢谢。我对正则表达式不太了解,但看起来不正确,也不起作用正则表达式测试器和html模式) – grindit

+0

我的意思是,为什么有三个“:”?这是应该匹配的 – grindit