用于验证电话号码的JavaScript,正则表达式

时间:2016-07-31 14:02:30

标签: javascript regex

我想以X-XXX-XXX-XXXX格式验证电话号码

    var phone= prompt("Enter phonenumber in the format X-XXX-XXX-XXXX");
    var regEx= /\d-[\ddd\-]{2}\d{4}/; 
    if(regEx.test(phone))
    {document.write("Is valid PhoneNumber "+phone);}
    else{
     var msg= "Chaphert 6 exmaple 2a says <br/>" +phone +" is invalid";
     alert(msg);
    }

我本可以使用regEx=/\d-\d{3}-\d{3}-\d{4},这可以解决我的问题,但因为我必须重复这个xxx-xxx-,即我不想在正则表达式中重复\d{3}-两次期待用\ d {3} - \ d {3}替换某些内容,例如[\ d {3} - ] {2}。我将不胜感激任何帮助。

3 个答案:

答案 0 :(得分:2)

以下正则表达式应该按照您的要求进行:

^\d(?:-\d{3}){3}\d$

DEMO

答案 1 :(得分:0)

如果您想要一个显示1-3-3-4结构并希望阻止使用

的模式
'-\d{3}'

两次,您可以将此部分放入一个组并重复两次。

最终模式如下所示:

'^\d-(\d{3}-){2}\d{4}$'

答案 2 :(得分:0)

感谢您的帮助,我需要将[]替换为()进行分组 即

    var phone= prompt("Enter phonenumber in the format X-XXX-XXX-XXXX");
    var regEx= /\d-(\d{3}\-){2}\d{4}/; 
     if(regEx.test(phone))
      {alert("Is valid PhoneNumber "+phone);}
     else{
     var msg= "Entered phone number " +phone +" is invalid";
     alert(msg);
     }

解决了我的问题,它按预期工作了