我有下面的脚本检查,以确保电话号码的表单字段包含10个digtis,帐户连字符和()字符。我遇到的问题很多时候人们会把这个电话号码放在这个间隔 - 000 000 0000
调用脚本时会抛出错误消息。我如何使用下面的脚本但允许指定格式的空间000 000 0000而不会抛出错误?
感谢您的帮助!
function validateTel(telnum) {
if (telnum.match(/^(1?(-?\d{3})-?)?(\d{3})(-?\d{4})$/)) {
return true;
} else {
return false;
}
}
答案 0 :(得分:0)
您可以使用此正则表达式匹配电话号码
^\d{3}[ ]{0,1}\d{3}[ ]{0,1}\d{4}$
在此处查看解释http://regex101.com/r/iG2fV4
<强>示例:强>
var telRegExp = /^\d{3}[ ]{0,1}\d{3}[ ]{0,1}\d{4}$/;
console.log("1234567890".match(telRegExp))
console.log("123 456 7890".match(telRegExp))
console.log("123 4567890".match(telRegExp))
console.log("123456 7890".match(telRegExp))
console.log("a1234567890".match(telRegExp))
<强>输出强>
[ '1234567890', index: 0, input: '1234567890' ]
[ '123 456 7890', index: 0, input: '123 456 7890' ]
[ '123 4567890', index: 0, input: '123 4567890' ]
[ '123456 7890', index: 0, input: '123456 7890' ]
null
答案 1 :(得分:0)
如何使用锚点?
/^\d{10}$/
或者可能是这个正则表达式: -
/^\+?\d{2}[- ]?\d{3}[- ]?\d{5}$/
或者可能是这个正则表达式,它将覆盖大多数情况以验证电话号码:
^(?:\+?\d{2}[ -]?\d{3}[ -]?\d{5}|\d{4})$
<强> Regex Demo 强>