JavaScript验证电话号码和扩展程序以*开头

时间:2017-08-24 11:31:52

标签: javascript regex

我想验证电话号码和分机号。

  1. 电话号码长度为10位数(仅限数字)。
  2. 扩展名将以* 55和最多6位开头。
  3. 我使用以下RegEx对电话号码进行了验证。

    var regExOther = /^[0-9*]+$/;
    if(!regExOther.test(phone)) //phone may have 9898123456 or *552341
    {
        //my error flag
    }
    

    当前解决方案仅适用于数字而不适用于扩展(* 55 ....)。

    任何帮助都将不胜感激。

2 个答案:

答案 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'));