JavaScript验证电话号码和分机以*

JavaScript验证电话号码和分机以*,javascript,regex,Javascript,Regex,我想验证电话号码和分机号码 电话号码的长度为10位数(仅为数字) 分机将以*55开始,最多6位 我使用下面的正则表达式对电话号码进行了验证 var regExOther = /^[0-9*]+$/; if(!regExOther.test(phone)) //phone may have 9898123456 or *552341 { //my error flag } 当前解决方案仅适用于数字,不适用于扩展(*55…) 任何帮助都将不胜感激。您可以这样做 函数匹配(str){ 返回

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

  • 电话号码的长度为10位数(仅为数字)
  • 分机将以*55开始,最多6位
  • 我使用下面的正则表达式对电话号码进行了验证

    var regExOther = /^[0-9*]+$/;
    if(!regExOther.test(phone)) //phone may have 9898123456 or *552341
    {
        //my error flag
    }
    
    当前解决方案仅适用于数字,不适用于扩展(*55…)


    任何帮助都将不胜感激。

    您可以这样做

    函数匹配(str){
    返回str.match(/(?:^\*55\d{6}$)|^\d{10}$/);
    }
    console.log(匹配('1234567890'));
    log(匹配('*551234567890');
    log(匹配('*55123456');
    
    console.log(匹配('1234567'))据我所知,您希望匹配以
    *55
    开头的10位电话号码或分机,然后是0到4位数字

    var测试=[
    '1234567890',
    '12345678901',
    “abc”,
    '*55',
    '*551234',
    '*5512345',
    '*45123',
    '551234',
    ];
    console.log(test.map)(函数(a){
    返回a+':'+/^(?:\d{10}\*55\d{0,4})$/.test(a);
    
    }));扩展是否可选?您可以使用此正则表达式
    /^\d{10}(?:\*55\d{0,4})?$/
    扩展可以有多长?它是加在10位数字上还是分开?请添加一些测试用例。@Toto,用户可以添加10位数的电话号码,也可以添加以
    *55
    开头的最多6位数的分机号码(包括55)。是@marvel308,分机是可选的。用户可以输入分机号码或电话号码。我使用“运行代码片段”对其进行了测试,是的,它返回正确答案。您还可以建议将单值/函数参数与上述解决方案一起使用吗?console.log(/^(?:\d{10}|*55\d{0,4})$/.test('1234567890');是的,托托,完成了。非常感谢你。你的回答与我的问题完全相符(y)