nipopadyuk
@nipopadyuk

Как проверить номер телефона через регулярные выражения?

Добрый день!

На сайте уже давно реализована функция, проверки ввода email адреса в текст описания.
Появилась необходимость проверки номера телефона. Как это можно реализовать, с учетом множества всевозможных способов ввода номера?

Вот как сейчас сделано:
preg_replace_callback('/([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,4})/i', function($email){
            return ' ';
        }, $content);
  • Вопрос задан
  • 77 просмотров
Решения вопроса 1
Как это можно реализовать, с учетом множества всевозможных способов ввода номера?
Со стопроцентным результатом - никак.
Описывайте разные форматы, какие вы видели в своих текстах и какие придут к вам в голову, в виде регулярок. Когда пользователи неизбежно изобретут новый формат, добавляйте и его. Когда пользователи неизбежно будут жаловаться, что вы обрезали какой-нибудь серийный номер или географические координаты или ещё что, тюнингуйте регулярки, чтобы избежать ложноположительных срабатываний.
Когда задолбаетесь и поймёте, что всё это тщетно, удалите все регулярки и введите модерацию сообщений (этот момент может и не наступить, если пользователям надоест бороться с вами раньше, чем вам с ними).
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Очистить номер от всех нецифровых символов и проверить длину.
Ответ написан
rozhnev
@rozhnev
Fullstack programmer, DBA, медленно, дорого
Можно использовать библиотеку с поддержкой множества форматов:
https://github.com/giggsey/libphonenumber-for-php
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы