接受除5个连续零之外的所有数字:Javascript

时间:2014-04-07 12:05:53

标签: javascript regex

我想验证一个不应该是00000的5位数字。允许除00000以外的所有数字。

示例:01201,00001,21436,45645是有效数字,1,12,123,1234,00000是无效数字。

我尝试使用^([0-9]{5}[^(0){5}])$,但这没用。

对此的任何帮助将不胜感激。

感谢。

4 个答案:

答案 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)

无需负面预测

Live Demo

function isvalid5(str) {
  return str != "00000" && /^\d{5}$/.test(str);
}

答案 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})$