2016-03-02 125 views
0

我正在研究一個允許格式爲yyyymmdd-nn的正則表達式。 (2010年至2059年間4個數字年,2位數月份,2位數日,破折號,然後是01和99之間的值)。需要正則表達式才能允許空值

這工作... (20[1-5]\d(0|1)\d[0-3]\d-\d[1-9])

第二部分是,我還需要允許空值。理想情況下,我希望它是空的,但如果不可能,用戶輸入最多11個空格,則可以。

我試着使用\ S

(\s{0-11})|(20[1-5]\d(0|1)\d[0-3]\d-\d[1-9])

(\s?)|(20[1-5]\d(0|1)\d[0-3]\d-\d[1-9])

(\s*)(20[1-5]\d(0|1)\d[0-3]\d-\d[1-9])的不同變化。

這些都告訴我,它有無限的可能性。

我也曾嘗試...

(20[1-5]\d(0|1)\d[0-3]\d-\d[1-9])|null

(20[1-5]\d(0|1)\d[0-3]\d-\d[1-9])?這些

^(20[1-5]\d(0|1)\d[0-3]\d-\d[1-9])?$

沒有人可以允許空值,無論是。

有人能告訴我什麼我需要添加到我的正則表達式,以允許值爲空?

+2

你很親密。試試'^(20 [1-5] \ d(0 | 1)\ d [0-3] \ d- \ d [1-9] |)$'。 – ClasG

+0

你試過用(\\ s *)開始,你可能需要使用雙反斜槓。 – Hughzi

回答

2

你真的很接近。你需要的是匹配你的RE,一個空字符串。因此,

^(20[1-5]\d(0|1)\d[0-3]\d-\d[1-9]|)$ 

應該做的伎倆。 (N.b. |結束捕獲組)。

關心。