2014-06-22 9 views
4

Im пытается реализовать Regex для HH: MM: SS, пример:Regex в течение часа, минуты и секунды HH: MM: SS

07:15:30 

Но я не могу заставить его работать

Прямо сейчас Im using:

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

Любая подсказка?

+2

я собираюсь возобновить этот вопрос на этот раз, но в будущем, пожалуйста, не расплывчатый такие как «Я не могу заставить это работать» ** без объяснения *, каким образом что-то не работает ***, потому что это классический знак вопроса, который не содержит достаточной информации для решения проблемы , –

ответ

11
^(?:([01]?\d|2[0-3]):([0-5]?\d):)?([0-5]?\d)$ 

Объяснение:

^     # Start of string 
(?:     # Try to match 
([01]?\d|2[0-3]): # HH: 
([0-5]?\d):   # MM: 
)?     # (entire group) 
([0-5]?\d)   # SS 
$     # End of string 

Используются некоторые выражения из регулярных выражений шпаргалки здесь:

http://www.cheatography.com/davechild/cheat-sheets/regular-expressions/

EDIT # 1

^(?:([01]?\d|2[0-3]):([0-5]?\d):)?([0-5]\d)$ 

Удалено ? на SS, чтобы вернуть его, если в течение нескольких секунд вводится только одна цифра.

EDIT # 2

^([0-5]\d):([0-5]\d):([0-5]\d)$ 

изменил HH часть а немного так, если пользователь просто HH без MM и SS, он возвращает ложь.

EDIT # 3

Благодаря этому comment для этого выражения, чтобы добавить к этому списку

^((?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d$) 
+0

Мне нужно заставить 00:00:00 с ведущими нулями, если это так. Прямо сейчас это не делает :( – VAAA

+0

Вы хотите, чтобы он вернул false, если введено 00:00:00? – imbondbaby

+0

Я имею в виду, что маска должна быть 00:00:00, поэтому 13:51:10, прямо сейчас, если я набираю 13: 51: 1, и это не должно. – VAAA

Смежные вопросы