2017-11-26 3 views
0

Ich verwende das html5-Eingabemuster-Attribut, um eine Zeit im Format HH: MM AM oder HH: MM PM zu prüfen. Die inout Steuerung wird wie folgt codiert:Warum funktioniert dieses Eingabemuster nicht?

<input class="form-control input-sm" id="ConcertTime" name="ConcertStartTime" type="text" pattern="^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]\040(AM|am|PM|pm)$" title="hh:mm AM/PM" required placeholder="hh:mm AM/PM"> 

Nachdem in etwas Keying, das das Muster nicht übereinstimmen, und klicken Sie auf die Schaltfläche Senden, kein Fehler angezeigt wird. Andere Validierungsattribute (z.B. das "Erforderlich" an dieser Eingabe) werden korrekt gehandhabt.

Ich habe die Regex in verschiedenen Regex-Testprogrammen ausprobiert und erfolgreich gültige und ungültige Zeitformate erkannt. Diese

ist in Chrome 62.0.3202.94

Antwort

0

Es macht nichts. Die js-Konsole zeigt, dass html das \ 040 in der Regex nicht mag, denkt es ist eine ungültige Sequenz. Ersetzt es durch ein Leerzeichen und alles funktioniert jetzt gut.

0

dieses

<input type="time" name="time" /> 
+0

Dank Bitte versuchen Sie es. Ich dachte daran, aber ich glaube Safari unterstützt es nicht, also würde ich sowieso eine Musterprüfung benötigen. – Pete

Verwandte Themen