我想驗證一個字符串,符合下列條件:需要一個正則表達式 - 禁止所有零
- 必須是長6個字符
- 只有第一個字符可以是字母,數字,其餘必須是數字
- 如果第一位是字母,它必須是大寫
- 不能全部爲零
我有以下正EXP除了全零部分以外,所有東西都可以獲得。有沒有辦法禁止所有的零?
^[A-Z0-9][0-9]{5}$
就是做這個檢查正則表達式(並允許「000000」),但是專門檢查,這不是「000000」的唯一途徑?
謝謝。
我想驗證一個字符串,符合下列條件:需要一個正則表達式 - 禁止所有零
我有以下正EXP除了全零部分以外,所有東西都可以獲得。有沒有辦法禁止所有的零?
^[A-Z0-9][0-9]{5}$
就是做這個檢查正則表達式(並允許「000000」),但是專門檢查,這不是「000000」的唯一途徑?
謝謝。
只是有這樣一個負先行不允許全0:
/^(?!0{6})[A-Z0-9][0-9]{5}$/
謝謝,這很好用! – RHarris 2012-03-07 22:02:40
太嘮叨評論 – 2015-06-25 08:35:14
我會做兩遍。一個用你的第一個正則表達式,一個用新的正則表達式尋找全零。
如果您先檢查全零情況,然後在確定沒有全零應用您的正則表達式之後該怎麼辦?
if (NOT ALL ZEROS)
APPLY REGEX
我認爲這樣做。它檢查不是000000和你原來的正則表達式。
(?!0{6})^[A-Z0-9][0-9]{5}$
(?!000000)[A-Z0-9][0-9]{5}
如果超前是好的。
您可以使用(?!0+$)
負先行,以避免匹配只包含1個或多個零的字符串:
/^(?!0+$)[A-Z0-9][0-9]{5}$/
^^^^^^^
見regex demo。這種方法讓你只需在^
之後複製/粘貼lookahead,而不用擔心消費部分匹配的字符數。
詳細
^
- 串(?!0+$)
的開始 - 如果有1個或多個0
字符到字符串的末尾失敗比賽的負先行($
)[A-Z0-9]
- 大寫ASCII字母或數字[0-9]{5}
- 五位數字$
- 字符串結尾。
也許在這裏? http:// stackoverflow。com/questions/6311842/regular-expression-4-digits-in-a-row-but-can-be-all-zeros – Tim 2012-03-07 21:50:20