Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Проверка номера телефона
Форумы портала PHP.SU » PHP » Регулярные выражения » Проверка номера телефона

Страниц (1): [1]
 

1. phphel - 06 Июня, 2010 - 16:53:24 - перейти к сообщению
Помогите составить регулярку на проверку мобильного номера телефона

к примеру +79281234567
2. scarbo - 06 Июня, 2010 - 17:06:25 - перейти к сообщению
Если именно только в таком виде, то можно так

Если же всякие дефисы, скобки и пробелы, например так - +7 (123) 456-78-90, то уже сложнее регулярка будет.
3. phphel - 06 Июня, 2010 - 17:08:21 - перейти к сообщению
Подходит, спасибо
4. alexspb - 06 Июня, 2010 - 22:26:07 - перейти к сообщению
чтобы облегчить жизнь невнимательным юзерам, переменную из формы можно обработать, например, удалить пробелы и -
$_POST['telefon'] = preg_replace('/[^\d\+]+/', '', $_POST['telefon']);//заодно в базу можно писать не проверяя на экранирование

а врегулярке добавить знак ? - /^\+?7\d{10}$/ - если не подставили +

исходить надо из того, что юзер "тупит"
5. JustUserR - 07 Июня, 2010 - 01:39:26 - перейти к сообщению
alexspb пишет:
А врегулярке добавить знак ? - /^\+?7\d{10}$/ - если не подставили + исходить надо из того, что юзер "тупит"
Действительно главное проверять начилие 10 цифр в номере телефона и наличие верного кода страны - а все разделительные спецсимволы должны быть обрамлены в квантификатор ? с возможным использованием оператора ИЛИ для указанием различных вариантов разделителей

 

Powered by ExBB FM 1.0 RC1