我想验证一个大小在11到15个字符之间且不是仅为零的连续数字。
我测试了这个正则表达式:
^((0[^0]{10,14})|([1-9][0-9]{10,14}))$
000000000000 - >不匹配, 1501087751444 - >匹配的, 0154564445666 - > 不匹配?
但是当一个数字从零开始时它就不起作用了。为什么?
余母,[^0]
允许使用字母数字和特殊字符......丑陋。
你能帮帮我吗?
答案 0 :(得分:2)
您可以使用此模式:
^(?=0*[^0])[0-9]{11,15}$
(?=0*[^0])
是一个先行断言,只检查是否有一个字符与零不同。
答案 1 :(得分:2)
你的正则表达式还有另一个问题:它不匹配: 0 1 0 111111111
你需要一个负面的预测:
^(?!0+$)\d{11,15}$
它将确保从头到尾没有零。