Регулярное выражение для проверки времени до 04:00 - PullRequest
2 голосов
/ 12 февраля 2020

Здравствуйте, у меня есть ^([02][0-4])(:[0-5]\d){1,2}$ выражение для проверки времени в форме. Моя проблема в том, что максимум, который я могу ввести, должен быть 04:00, а не 04:59, но, конечно, включая все другие числа, такие как 02:47 или 03:59.
Я никогда не использовал регулярные выражения, это лучшее, что я мог сделать, может кто-нибудь мне помочь или хотя бы объяснить?
Любая помощь оценена, спасибо

1 Ответ

5 голосов
/ 12 февраля 2020

Вы можете использовать чередование для включения 04:00 в качестве крайнего случая:

^(0[0-3]:[0-5][0-9]|04:00)$

Демо

Редактировать :

Если вы хотите исключить 00:00 собственно из включения, то нам нужно проделать дополнительную работу, но мы можем попробовать использовать:

^(00:0[1-9]|00:[1-5][0-9]|0[1-3]:[0-5][0-9]|04:00)$

Демо

Вот объяснение второго шаблона регулярных выражений:

^(                     from the start of the string
    00:0[1-9]          match 00:01 - 00:09
    |                  or
    00:[1-5][0-9]      match 00:10 - 00:59
    |                  or
    0[1-3]:[0-5][0-9]  match 01:00 - 03:59
    |                  or
    04:00              match 04:00
)$
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...