Слишком объясните регулярное выражение в комментарии ash108:
^(([0-9])|([0-1][0-9])|([2][0-3])):(([0-9])|([0-5][0-9]))$
^
в начале строки ...
([0-9])|([0-1][0-9])|([2][0-3])
... должен бытьчисло 0-9 ИЛИ (число с первым 0-1, а затем 0-9) ИЛИ (число с первым 2, а затем 0-3)
:
тогда должен быть знак: знак
([0-9])|([0-5][0-9])
тогда должно быть число 0-9 ИЛИ a (число с первым 0-5, а затем 0-9)
$
и затем должен быть конец строки
Есть одна вещь, немного странная с этим выражением, хотя, если вы изучите его.Посмотрите на часть после знака.Это позволит одну цифру 0-9.Следовательно, строка, как в примере 12: 5, будет действительной.Imo эта часть, вероятно, должна быть удалена, в результате чего:
^(([0-9])|([0-1][0-9])|([2][0-3])):([0-5][0-9])$
Теперь часть после знака: вынуждена иметь две цифры, в то время как часть перед знаком: может иметь одну или две цифры.