我想驗證一個不應該是00000的5位數字。除了00000之外的所有數字都是允許的。接受除5個連續0之外的所有數字:Javascript
示例:01201,00001,21436,45645是有效數字,而1,12,123,1234,00000是無效數字。我試過^([0-9]{5}[^(0){5}])$
,但它沒用。
對此的任何幫助將不勝感激。
謝謝。
我想驗證一個不應該是00000的5位數字。除了00000之外的所有數字都是允許的。接受除5個連續0之外的所有數字:Javascript
示例:01201,00001,21436,45645是有效數字,而1,12,123,1234,00000是無效數字。我試過^([0-9]{5}[^(0){5}])$
,但它沒用。
對此的任何幫助將不勝感激。
謝謝。
使用負得正前瞻:
/^(?!0{5})\d{5}$/
/^(?!0{5})\d{5}$/.test('01201')
// => true
/^(?!0{5})\d{5}$/.test('00001')
// => true
/^(?!0{5})\d{5}$/.test('21436')
// => true
/^(?!0{5})\d{5}$/.test('1')
// => false
/^(?!0{5})\d{5}$/.test('12')
// => false
/^(?!0{5})\d{5}$/.test('00000')
// => false
嘿,這工作像一個魅力,我upvoted你的答案。唯一我想知道的是如何在JavaScript中使用lookahead。簡單的解釋或簡單的教程鏈接將對我有所幫助。 –
@NareshRavlani,閱讀[正則表達式教程 - Lookahead和Lookbehind Zero-Length Assertions](http://www.regular-expressions.info/lookaround.html)將會有所幫助。 – falsetru
嘿謝謝人.. !! :) –
可以使用定向排除:
^(?!0{5})\d{5}$
負廁所提前(?!...)
會,如果裏面有什麼失敗,整個正則表達式它匹配,\d
是[0-9]
的快捷方式。
的正則表達式引擎不支持前瞻:
^(0000[1-9]|000[1-9][0-9]|00[1-9][0-9]{2}|0[1-9][0-9]{3}|[1-9][0-9]{4})$
約string.length減什麼= 5 &&字符串= 「00000」 ? [編輯:好的,測試數字度需要正則表達式,請參閱@ mplungjan的答案] – Jasper