Регулярное выражение. Валидация номера телефона

Как проверить номер мобильного телефона? Проверка правильности, введенного номера телефона является не сложной, но важной задачей. Если пользователь введет некорректный номер, то смс сообщение до него не дойдет.

PHP проверка сотового телефона позволяет убедится, что номер телефона содержит только цифры: без тире, пробелов, дефисов, скобок и т.д. Часто владельцы прямых номеров не вводят свой код, а он необходим для отправки смс сообщения. Не зная префикса, можно только позвонить на данный номер, но нельзя отправить смс сообщение. В частном порядке можно позвонить в службы поддержки Билайна, МТС, Мегафона и попытаться выяснить какой префикс у данного прямого номера. Операторы предоставляют данную информацию.

Однако, чтобы избежать данных проблем, мы предлагаем обрабатывать вводимый клиентом телефон на сайте уже в момент его регистрации. Это позволит вам гарантированно доставлять смс сообщения через php на телефон вашего клиента.

/**
 * проверка - телефон ли
 * @param $_val
 * @return bool
 */
function is_phone($_val)
{
    if (empty($_val)) {
        return false;
    }

    if (!preg_match('/^\+?\d{10,15}$/', $_val)) {
        return false;
    }

    if (
        (mb_substr($_val, 0, 2) == '+7' and mb_strlen($_val) != 12) ||
        (mb_substr($_val, 0, 1) == '7'  and mb_strlen($_val) != 11) ||
        (mb_substr($_val, 0, 1) == '8'  and mb_strlen($_val) == 11) ||
        (mb_substr($_val, 0, 1) == '9'  and mb_strlen($_val) == 11)
    ) {
        return false;
    }
    return true;
}

  1. Регулярные выражения
  2. PHP
  3. примеры