2017-07-17 3 views
0

Ich konstruierte eine Regex, um Datumswerte im Format dd.mm.yyyy hh: ii übereinzustimmen. Das funktioniert gut auf Regex-Tester: https://regex101.com/r/AX4nxj/1 Aber wenn im Muster Attribut eines Eingabefeldes verwendet wird es nicht validiert. Sie können sogar nur "a" eingeben und es wird gesendet.Regex funktioniert nicht auf HTML-Eingabemuster

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

Sie können es versuchen, sich selbst: http://jsfiddle.net/h2uwhL70/

Warum ist das so? :(Nutzt HTML ein anderes Regex-Format oder was

+0

Der einzige Fehler die Backslash vor einem Raum. –

Antwort

1

Ich denke, Ihre regex ein wenig verborage sind und falsch:?. D Also das versuchen:

^(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

vielleicht einfach das \ d \ d \ d \ d nach \ d {4} drehen, aber ich mag es! – sniperd

+0

danke. Ich weiß nicht viel über Regex, aber das sieht nicht richtig aus und funktioniert auch nicht (auf beiden regex tester und html pattern) – grindit

+0

Ich meine zum Beispiel warum gibt es drei ":"? was soll das zusammenpassen? – grindit