Oto ab zamiast rozwiązania górnego dla wojska i rozwiązania cywilnego.
Wojskowy
^(((([0-1][0-9])|(2[0-3])):?[0-5][0-9])|(24:?00))
wierzę ani w odpowiedzi najwyższa znamionowym nie jest właściwie analizowanie podzbiorów przed i po bez dodatkowego zestawu nawiasie grupy im. Ponadto, nie jestem pewien, że \d
jest tylko 0-9
we wszystkich iteracjach. Technicznie zawiera specjalne [[:digit:]]
, chociaż nigdy wcześniej nie miałem do czynienia z tym problemem. Obojętnie jak to powinno zapewnić wszystko, co w tym crossover 2400/24: 00
cywilnego
^([0-9]|([1][0-2])):[0-5][0-9][[:space:]]?([ap][m]?|[AP][M]?)
Jest to miłe cywilna wersja, która pozwala na pełny zakres sformatowany jak 12:30, 12: 30P, 12:30, 12:30, 12:30, 12:30 P, 12:30 lub 12:30 p, ale wymaga to, aby poranne znaki meridianów i postów były takie same, jeśli oba są włączone (brak am lub pM).
Używam obu tych elementów w tekście JavaScript do sprawdzania poprawności łańcuchów czasu.
Upvoted dla dając przykłady i kontr-przykłady. –