我想验证一个不应该是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