2016-01-26 2 views
1

Я не могу решить простой шаблон регулярных выражений в тесте ExtJS 4 texfield.ExtJS 4 текстовое условие регулярного выражения

Я должен ввести час и минуту в формате «ЧЧММ» и я использую такое регулярное выражение:

/[012][0-9][0-5][05]$/ 

И это работает почти хорошо> Почти, потому что можно ввести 2900. я не могу установить в этом регулярном выражении, что, когда первая цифра «2» второй должен быть от 0 до 4 не от 0 до 9.

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

+0

Последнее [05] означает, что я принимаю только 5 минут с в конце HHMM. – Tad

+0

Попробуйте '^ (?: [01] [0-9] | 2 [0-3]) [0-5] [0-9] $' –

ответ

1

Вы можете использовать

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

См regex demo

регулярное выражение матча:

  • ^ - начало строки
  • (?:[01][0-9]|2[0-3]) - две альтернативы:
    • [01][0-9] - 1 или 0, а затем с какой-либо одной цифрой
    • | - или
    • 2[0-3] - 2 следуют с 0, 1, 2 или 3
  • [0-5][0-9] - 0 к 5 цифры следуют с любым 1 цифра
  • $ - конец строки

2400 Чтобы включить в качестве действительного матча, используйте

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

См another demo

+0

Большое спасибо за ответ! Я начал смотреть в условном определении регулярных выражений и думал о такой конструкции, но, к сожалению, он устранил 2400. Допустимые значения должны быть от 0000 до 2400. Могу ли я разместить условие в состоянии? – Tad

+0

Используйте '^ (?: (?: [01] [0-9] | 2 [0-3]) [0-5] [0-9] | 2400) $'. Вы хотели сказать, что добавить группу чередования в другую группу альтернатив - да, вы можете. –

+0

Тем временем я проверил и сделаю это сам, но в любом случае еще раз спасибо за помощь – Tad

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