正则表达式不处理html输入模式

正则表达式不处理html输入模式,html,regex,Html,Regex,我构造了一个正则表达式来匹配dd.mm.yyyy hh:ii格式的日期时间。 这在regex tester上非常有效: 但当在输入字段的模式属性中使用时,它根本不会验证。你甚至可以只输入“a”,它就会提交 <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[

我构造了一个正则表达式来匹配dd.mm.yyyy hh:ii格式的日期时间。 这在regex tester上非常有效: 但当在输入字段的模式属性中使用时,它根本不会验证。你甚至可以只输入“a”,它就会提交

<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" />

你可以自己试试:


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

我认为您的正则表达式有点冗长和错误: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])$

也许只是把\d\d\d\d翻转到\d{4}但是我喜欢它!谢谢你。我对regex不太了解,但这看起来不正确,也不起作用(在regex tester和html模式上)。我的意思是,例如,为什么有三个“:”?这应该是什么来匹配sniperd,实际上\d{4}更好,谢谢你的帮助。@grindit,三个“:”是我的错误,我没有意识到你想要的是“.”而不是“:”。现在我编辑了答案。再试一次。但是你建议的正则表达式也允许d.m.yyyy h:I(个位数)。我用我的noobie知识自己纠正了它。还将yyy改为yy。
^(0?[1-9]|[12][0-9]|3[01]){2}.(0?[1-9]1241[0-2])。{d{2}[0-9][0-9]1240-3]{2} :([0-9]|[0-5][0-9]){2}$
只有月份部分不适用于{2}。您能帮我一下吗?唯一的错误是空格前的反斜杠。