regex für die Zeit validation
Möchte ich überprüfen mal mit einem regex. Erstellt habe ich den folgenden Ausdruck :
'#^([01][0-9])|(2[0-4])(:[0-5][0-9]){1,2}$#'
Hier ist das problem:
<?php
var_dump(preg_match('#^([01][0-9])|(2[0-4])(:[0-5][0-9]){1,2}$#', '14:25'));
//Returns 1 (OK)
var_dump(preg_match('#^([01][0-9])|(2[0-4])(:[0-5][0-9]){1,2}$#', '25:25'));
//Returns 0 (OK)
var_dump(preg_match('#^([01][0-9])|(2[0-4])(:[0-5][0-9]){1,2}$#', '14:2555'));
//Returns 1 (instead of 0 as I would like to get)
?>
Weiß jemand was falsch ist?
- können Sie Beispiele nennen, was Sie erwarten?
- Hier sind einige Beispiele: 14:25 OK, 25:30 KO, 14:65 KO, 14:59 OK, 14:34:43 OK
- Nicht eine Antwort auf Ihre Frage, aber Sie sollten sich bewusst sein, dass es keine gültige Uhrzeit wie 24:*nn*
Du musst angemeldet sein, um einen Kommentar abzugeben.
Uhrzeit im 24-Stunden-format regular expression pattern :
24-Stunden-format starten von 0-23 oder 00-23 dann ein Semikolon (:), und Folgen Sie durch 00-59 dann (Optional ein halb-Doppelpunkt (:), und Folgen Sie durch 00-59).
Beschreibung :
Passenden Zeit-Formate :
Nicht übereinstimmenden Formaten :
Beispiel :
Diese erhalten von 00:00 bis 23:59 und 00:00:00 bis 23:59:59.
Wechsel ist eine niedrige Rangfolge: operator, so wickeln Sie es in ein nicht-capture-Gruppe:
Siehe demo hier.
Dies wird es ermöglichen, 00:00 oder 00:00:00 wie auch einige andere hier nicht.
Es begrenzt auch die Zeit auf 00:00:00 bis 23:59:59 23:59, einige von der anderen gewähren Sie uns 24:00 Uhr oder 25:00, usw.