2013-02-08 11 views
12

Chciał zapytać o możliwe wyrażenie Regex dla 24-godzinnego formatu czasu w HTML 5 (GG: MM).Wyjaśnienie czasu 24 h dla HTML 5

jeśli to możliwe, prosimy powiedzieć regex, które można wykorzystać w atrybucie wzór HTML 5

Oczekuje się, że czas, aby być w formacie 24-godzinnym (GG nie więcej niż 23).

poważaniem,

Odpowiedz

14

myślę, że to jest możliwe podejście:

<input type="text" pattern="([01]?[0-9]|2[0-3]):[0-5][0-9]" id="24h"/> 
<input type="text" pattern="([01]?[0-9]{1}|2[0-3]{1}):[0-5]{1}[0-9]{1}" id="24h"/> 

http://www.mkyong.com/regular-expressions/how-to-validate-time-in-24-hours-format-with-regular-expression/

([01]?[0-9]|2[0-3]):[0-5][0-9] 

Sprawdź tę jsfiddle: example

+0

Dziękuję .. widziałem to wcześniej, ale ale nie działało .. prawdopodobnie brakowało wspornika .. :). Dziękuję chociaż .. –

+1

@AbdulAli sprawdź moje komentarze na zewnątrz –

+0

Jak widać działa. –

11

Oto kod:

<input type="text" pattern="[0-2]{1}[0-9]{1}:[0-5]{1}[0-9]{1}" /> 

to zezwala nieprawidłowe wartości godzina: 24,25,26,27,28,29, jeśli chcesz być bardzo poprawna można zrobić to w ten sposób:

<input type="text" pattern="([0-1]{1}[0-9]{1}|20|21|22|23):[0-5]{1}[0-9]{1}" /> 
+0

Jeśli mówię o czasie, na pewno chcę Extra Prawidłowy sposób, dziękuję, działało jak urok! – Daniel

1

Nieco krótszy regex :

(?:[01]|2(?![4-9])){1}\d{1}:[0-5]{1}\d{1} 

Więc w kompletny: "(:)"

<input type="text" pattern="(?:[01]|2(?![4-9])){1}\d{1}:[0-5]{1}\d{1}" /> 

w pierwszej grupie non-przechwytywania() my MATC h dokładnie jedna cyfra, albo 0, 1 lub 2, po których nie następuje 4-9 (ujemna liczba wyprzedzająca "(?!)"). Wtedy dopasowuję jeszcze jedną cyfrę, ponieważ może to być dowolna z 0-9, którą możemy wybrać za pomocą \ d skrótu. Następnie dopasowujemy separator ":". Następnie jedna cyfra między 0-5 a jeszcze jedna między 0-9 (ponownie z "\ d"). Jeśli z jakiegoś powodu musisz również dopasować 24 godziny (czasami robisz), a następnie po prostu skoryguj negatywną uprzedzkę, np. sol. "(?! [5-9])".

+0

Możesz to uczynić jeszcze krótszym, pozbawiając się '{1}', który nie ma żadnego efektu. –