我想验证电话号码和分机号。
我使用以下RegEx对电话号码进行了验证。
var regExOther = /^[0-9*]+$/;
if(!regExOther.test(phone)) //phone may have 9898123456 or *552341
{
//my error flag
}
当前解决方案仅适用于数字而不适用于扩展(* 55 ....)。
任何帮助都将不胜感激。
答案 0 :(得分:2)
你可以做这样的事情
function match(str){
return str.match(/(?:^\*55\d{6}$)|^\d{10}$/);
}
console.log(match('1234567890'));
console.log(match('*551234567890'));
console.log(match('*55123456'));
console.log(match('1234567'));
在正则表达式中
如果字符串以扩展名开头,则(?:* 55)匹配 \ d {10} 匹配应该有10位数的情况
答案 1 :(得分:1)
据我了解,您希望匹配以*55
开头的10位数电话号码或分机号码,后跟0最多4位数。
var test = [
'1234567890',
'12345678901',
'abc',
'*55',
'*551234',
'*5512345',
'*45123',
'551234',
];
console.log(test.map(function (a) {
return a+' :'+/^(?:\d{10}|\*55\d{0,4})$/.test(a);
}));
一个简单的功能应该是:
function validPhone(a) {
return /^(?:\d{10}|\*55\d{0,4})$/.test(a);
}
console.log(validPhone('1234567890'));