Интернационализированный номер телефона - PullRequest
0 голосов
/ 04 января 2019

Я написал следующее регулярное выражение, чтобы определить, имеет ли правильный номер национальный или международный номер телефона.

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

Шаблон можно улучшить, разбив числа на код страны и номер телефона, но это пока не имеет значения.

Спасибо за вашу помощь

edit: вот код.Это не должно быть проблемой, потому что другие регулярные выражения работают хорошо.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 голосов
/ 04 января 2019

Пожалуйста, используйте это:

/ (+ \ d {1,3} \ s?)? (((\ D {3}) \ s?) | (? \ d {3}) (\ s | -)) (\ d {3} (\ s | -)) (\ d {4}) (\ s (([E | е] х [:? |. |]?) | 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 Ext 1123123 1234567890Ext 1123123 1234567890 Ext1123123 1234567890Ext1123123

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...