Задать вопрос
nipopadyuk
@nipopadyuk

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

Добрый день!

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

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

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

Похожие вопросы
Wanted. Санкт-Петербург
До 450 000 ₽
Wanted. Санкт-Петербург
До 120 000 ₽
Wanted. Санкт-Петербург
До 100 000 ₽
09 янв. 2025, в 21:26
30000 руб./за проект
09 янв. 2025, в 20:23
1000 руб./за проект