国际化电话号码正则表达式

时间:2019-01-04 06:43:44

标签: javascript regex

我写了以下正则表达式来确定国内或国际电话号码是否具有正确的格式。

/ ^(00 | 0 | [+])([-] [0-9] | [0-9]){1,13} [0-9] /

可以通过将数字分为国家代码和电话号码来改进模式,但这并不重要。

感谢您的帮助

编辑:这是代码。这应该不是问题,因为其他正则表达式可以很好地工作。 oChanged是一个文本输入。

    function verification(oChanged, regex){
   var val = $(oChanged).val();
   var reg = new RegExp(regex);
   if( !reg.test(val) ){
       if( !$(oChanged).hasClass('notvalid') ){
            $(oChanged).addClass('notvalid');
       }

   }else{
       if( $(oChanged).hasClass('notvalid') ){
            $(oChanged).removeClass('notvalid');
       }
   }
}

我在互联网上用一些正则表达式测试器对其进行了测试,它与所有这些字符串都匹配,但是在实现时却不匹配。

它应该适用于例如004915773554660 +4915773554660 015773554660 0049157-7355-466-0

1 个答案:

答案 0 :(得分:0)

请使用以下一项:

/(+ \ d {1,3} \ s?)?((((\ d {3})\ s?)|(\ d {3})(\ s |-?))(\ d {3}(\ s |-?))(\ d {4})(\ s?(([[E | e] xt [:|。|]?)| x | X)(\ s?\ d +) )?/ g

演示:https://www.regextester.com/103299

完整号码

+999(999)999-9999分机号99999

常规本地电话号码(XXX)XXX-XXXX

1231231231 123-1231231 123123-1231 123-123 1231 123 123-1231 123-123-1231 (123)123-1231 (123)123 1231 (123)123-1231 (123)123 1231

国际代码+ XXX(XXX)XXX-XXXX

+99 1234567890 +991234567890

扩展名(XXX)XXX-XXXX扩展名。 XXX ...

1234567890分机1123123 1234567890分机1123123 1234567890 Ext1123123 1234567890Ext1123123