我有要求验证电话号码(TN)扩展(只是扩展)。扩展可以是3-6位长,3位扩展,不应该跟随11。是的,其他事情,扩展不应该有特殊的字符和所有的零。
例如: 911,311等,
我们写了下面的一封信。
(?!0+$)[0-9](?!.*11).[0-9]*$ 以上的问题是
对于311,211 ->验证是通过的.
对于38311,2311 -它们是4位和5位长度的扩展,它可以以'11‘作为后缀.但是上面的模式是不允许的。我怎样才能做到这一点?
发布于 2019-10-31 19:29:29
你可以用:
(?!^((0+)|(\d11))$)(?=^\d{3,6}$).*(?!^((0+)|(\d11))$) --从头到尾,确保不是所有的零,也不是11(?=^\d{3,6}$)后面的数字--从头到尾确保我们处理的是3到6 digits.* --如果以前的验证通过了,那么获取所有的都是安全的
发布于 2019-10-31 18:44:44
为了检查非零,您可以简单地使用>操作符,对于其余的规则,您可以使用以下模式

let data = ['911','311','38311','2311','000000','123111', '112']
data.forEach(v=>{
console.log(v, '\t' , v > 0 && /^(?:(?:(?!11$)\d){3}|\d{4,6})$/.test(v))
})
对于非零检查,您也可以使用regex,但我个人更喜欢上面的方法。
https://stackoverflow.com/questions/58649248
复制相似问题