我需要验证电话号码(TN)分机(仅分机)。扩展名可以是3-6位数字的长度,也可以是3位数字的扩展名,不应跟随11。此外,扩展名不能包含特殊字符和全零。
例如:911、311等,
我们写了以下一本书。
(?!0+$)[0-9](?!.*11).[0-9]*$
上述问题是
对于311、211->验证已通过。
对于38311,2311->分别是4位和5位数字的扩展名,并且可以后缀'11'。但是上述模式是不允许的。我该如何实现?
答案 0 :(得分:0)
要检查非零值,您可以简单地使用>
运算符,而对于其余规则,可以使用此模式
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))
})
要检查非零值,您也可以使用正则表达式,但我个人更喜欢上述方法
答案 1 :(得分:0)
您可以使用:
(?!^((0+)|(\d11))$)(?=^\d{3,6}$).*
(?!^((0+)|(\d11))$)
-从头到尾确保它既不是全零也不是数字,后跟11
(?=^\d{3,6}$)
-从头到尾确保我们处理的是3到6位数字.*
-如果先前的验证通过了,那么抓住一切都是安全的