Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

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

Короткий ответ

Уберите всё, кроме цифр, и проверьте длину:

<?php
 
function isPhone(string $phone): bool
{
    $digits = preg_replace('/\D/', '', $phone);
 
    return strlen($digits) >= 10 && strlen($digits) <= 15;
}
 
var_dump(isPhone('+1 (202) 555-01-23'));
var_dump(isPhone('555-01'));

Результат:

bool(true)
bool(false)

Единый вид для хранения

В базе номер хранят только цифрами со знаком плюс:

<?php
 
echo '+' . preg_replace('/\D/', '', '+44 (20) 7946-0958');

Результат:

+442079460958

Не будьте слишком строги

Форматы номеров в разных странах различаются. Жёсткий шаблон отсеет настоящих пользователей; для точной проверки есть библиотека giggsey/libphonenumber-for-php.

Функции из этого ответа

  • preg_match — Проверяет строку по регулярному выражению.
  • preg_replace — Заменяет всё, что подошло под регулярное выражение.
  • strlen — Возвращает длину строки в байтах.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.