[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Регулярное выражение для проверки телефона
Юрий Шу
Здравствуйте.
Необходимо проверять номер телефона, введенный в форме с помощью регулярного выражения.

Номер телефона:
1) должен содержать 11 знаков
2) первая цифра или 7, или 8
3) может содержать не более двух скобок (открывающую и закрывающую)
4) может содержать произвольное количество дефисов
5) может содержать произвольное количество пробелов

Даже не знаю с какой стороны подступиться. Буду признателен помощи в данном вопросе.



Спустя 2 минуты, 49 секунд (23.11.2010 - 11:13) Lenarfate написал(а):

Спустя 15 часов, 47 минут, 27 секунд (24.11.2010 - 03:01) kirik написал(а):
В данном случае ИМХО проверка соответствия регэкспу не совсем верное решение.
Здесь нужно приводить номер телефона к одному виду, и им оперировать.
Пример:
$phone = '8-911-2341232';

$phone = preg_replace('/\D*/', '', $phone); // убиваем все "не числа"
if(strlen($phone) == 11 && ($phone{0} == 7 || $phone{0} == 8)) { // тут проверка соответствия
echo 'Valid phone number: ' .
$phone{0} . '-' . substr($phone, 1, 3) . '-' . substr($phone, 4, 3) . '-' . substr($phone, -4);
} else {
echo 'Invalid number';
}

Спустя 5 часов, 58 минут, 21 секунда (24.11.2010 - 08:59) Юрий Шу написал(а):
kirik, большое спасибо.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.