Я строю инструмент, который будет проверять и фильтровать список чисел из CSV / XLSX.
попробовал Google libphonenumber, но я действительно не понимал, как это реализовать.
Пожалуйста, помогите с основным регулярным выражением, чтобы я мог изменить его с разными кодами страны.
Эта проблема ДЕЙСТВИТЕЛЬНО сложна и не всегда разрешима.
Например, хотя большинство (все?) Европейских стран имеют отдельные префиксы для мобильных номеров, это не так в регионе NANPA (США, Канада и другие). Действительно, стационарные и мобильные номера имеют одинаковый географический префикс, и их абсолютно невозможно отличить.
Google-х libphonenumber
на самом деле здорово, и он содержит данные для каждой страны. Для большинства стран он также включает в себя методы различения мобильных номеров и стационарных телефонов, когда это возможно (для NANPA он всегда возвращает константу «стационарный или мобильный»). Я использовал эту библиотеку для многих проектов, и она действительно хороша (я тоже внес в нее свой вклад).
Тем не мение, libphonenumber
официально доступен только для C / C ++, Java и JavaScript, поэтому вы не можете выполнить его с помощью PHP-кода. Там есть НЕОФИЦИАЛЬНЫЙ порт PHP доступен, который также выглядит довольно обновленным, но я не знаю, насколько хорошо он работает. Документы и примеры также доступны там.
(В конце концов, однако, самая большая ценность в libphonenumber
находится в таблицах данных, остальное просто «сопутствующий код»).
Ну, во-первых, вы должны знать все числовые форматы ….. Вы могли бы использовать preg_match
чтобы найти знак «+» перед числом или () и т. д. Затем я бы взорвал первые два числа, которые, скорее всего, были бы кодами страны ….., а затем просто сделал бы операторы, которые будут смотреть на эти два числа и на основе чего эти цифры определяют, из какой страны это число.