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
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Проверка номера телефона
Если же всякие дефисы, скобки и пробелы, например так - +7 (123) 456-78-90, то уже сложнее регулярка будет.
phphel
Отправлено: 06 Июня, 2010 - 17:08:21
Новичок
Покинул форум
Сообщений всего: 46
Дата рег-ции: Февр. 2010
Помог: 0 раз(а)
Подходит, спасибо
alexspb
Отправлено: 06 Июня, 2010 - 22:26:07
Посетитель
Покинул форум
Сообщений всего: 260
Дата рег-ции: Май 2010
Помог: 0 раз(а)
чтобы облегчить жизнь невнимательным юзерам, переменную из формы можно обработать, например, удалить пробелы и -
$_POST['telefon'] = preg_replace('/[^\d\+]+/', '', $_POST['telefon']);//заодно в базу можно писать не проверяя на экранирование
а врегулярке добавить знак ? - /^\+?7\d{10}$/ - если не подставили +
исходить надо из того, что юзер "тупит"
----- Хостинг - неограниченно доменов на одну папку Ajax - отличное введение
JustUserR
Отправлено: 07 Июня, 2010 - 01:39:26
Активный участник
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
alexspb пишет:
А врегулярке добавить знак ? - /^\+?7\d{10}$/ - если не подставили + исходить надо из того, что юзер "тупит"
Действительно главное проверять начилие 10 цифр в номере телефона и наличие верного кода страны - а все разделительные спецсимволы должны быть обрамлены в квантификатор ? с возможным использованием оператора ИЛИ для указанием различных вариантов разделителей
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.