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

Как проверить корректность номера телефона?

Просмотрев базу из более 1000 заявок, понял, что пользователи вводят номера по разному. Пробелы, тире, скобки, восьмерки, семерки с плюсом и тк.
input тип поля text, без js масок-уясок.
Регулярка тоже сомнительное решение, тк клиенты вольны вбивать как им угодно этот самый номер. Как показала практика.
Мужики, есть ли способ хоть как-то определить корректность?

PS input tel в виду "поддержки" не рассматриваю.
  • Вопрос задан
  • 1833 просмотра
Подписаться 1 Простой 16 комментариев
Пригласить эксперта
Ответы на вопрос 2
inoise
@inoise Куратор тега PHP
Solution Architect, AWS Certified, Serverless
Тыц. Не благодарите)

Если эта либа не поможет то дальше только NLP
Ответ написан
randomizex
@randomizex
http://resume.web-ivan.ru
Если все же на регулярках устроит
// оголяем телефон до цифр
function phoneTrim($phone)
    {
        $phone = preg_replace('/([- _()+])?/', '', $phone);

        if (mb_stripos($phone, "89") === 0) {
            $phone = '79' . mb_substr($phone, 2);
        }
        return $phone;
    }
// проверяем на корректность
function isPhoneValid($phone)
    {
        $phone = phoneTrim($phone);
        $res = false;
        if (mb_strlen($phone) == 11) {
            if (mb_stripos($phone, "79") === 0) {
                $res = true;
            }
        }
        return $res;

    }


Ну и соответственно если там бОльший беспридел то можно дописать функции.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы