我想验证一个不应该是00000的5位数字。允许除00000以外的所有数字。
示例:01201,00001,21436,45645是有效数字,1,12,123,1234,00000是无效数字。
我尝试使用^([0-9]{5}[^(0){5}])$
,但这没用。
对此的任何帮助将不胜感激。
感谢。
答案 0 :(得分:8)
使用否定的积极前瞻:
/^(?!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
答案 1 :(得分:8)
答案 2 :(得分:5)
您可以使用负面展望:
^(?!0{5})\d{5}$
如果内部的正面结果符合(?!...)
是\d
的快捷方式,那么前面的负面展示[0-9]
将失败整个正则表达式。
答案 3 :(得分:2)
对于不支持前瞻的正则表达式引擎:
^(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})$