2012-06-28 48 views
0

我有一個正則表達式允許值範圍內「1111」 - 「999999」,不包括「0」的任何實例:如何強制字符串中的最後一個字符在一定範圍內?

^([1-9]){4,6}$ 

這是爲我工作,但我的要求進行了修改。我現在不得不禁止該範圍中的最後一個'9',以便最後一個字符的最大值是'8',例如

1111 - 9998, or 1111 - 99998, or 1111 - 999998 

如何修改此正則表達式以符合新條件?

+0

WTF?爲什麼低估這個?這不是一個有效的問題嗎? – DaveDev

回答

2

這個怎麼樣

^([1-9]){3,5}[1-8]$ 
+1

非常好 - 但有一點,它需要範圍'1-8'而不是'0-8',所以我編輯了答案來反映。我必須等待大約7分鐘,然後才能將其標記爲正確。 – DaveDev

+0

@DaveDev - '(...)'不需要 –

1

第一種選擇:

^[1-9]{3,5}[1-8]$ 

第二個選項:

^(?!.*9$)[1-9]{4,6}$ 

負面預測(?!.*9$)不允許9在最後。

第三種選擇:

^(?!.*0)(?!.*9$)\d{4,6}$ 

負先行(?!.*0)不允許0是在文本的。

相關問題