2016-01-26 37 views
1

我無法在ExtJS 4 texfield中求解簡單的正則表達式模式。ExtJS 4 textfield正則表達式條件

我有格式爲「HHMM」進入小時和分鐘,我用這樣的正則表達式:

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

而且它幾乎工作好>差不多,因爲它有可能進入2900。 我不能在此正則表達式的是,當第一個數字是設置爲「2」的第二 必須是從0到4中未從0到9

這麼一種以提示我在這種情況下。

+0

最後[05]表示僅接受5 HHMM的端minites。 – 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隨後與0123
  • [0-5][0-9] - 05位,接着與任何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