Необходимо проверять номер телефона, введенный в форме с помощью регулярного выражения.
Номер телефона:
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, большое спасибо.