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 :: Проверка корректности введенного мобильного телефона

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Описание: Не могу правильно составить регулярное выражение
vanicon
Отправлено: 21 Декабря, 2010 - 22:42:23
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010  
Откуда: Самара


Помог: 17 раз(а)




Есть переменная $phone ее значение равно мобильному телефону вот такого типа +7 123 123-45-67. Я делаю вот так:
PHP:
скопировать код в буфер обмена
  1.  
  2. if(!preg_match("/[+][7] [0-9]{3} [0-9]{3}[-][0-9]{2}[-][0-9]{2}/i",$phone)){
  3. echo 'ОШИБКА: введенный мобильный телефон не соответствует шаблону, пример: +7 123 123-45-67 ';
  4. }
  5. else{
  6. echo 'Телефонный номер веден правильно';
  7. }
  8.  

Регулярное выражение работает но вот когда я ввожу вот такой номер +7 123 123-45-674 он пишет что он введен правильно, хотя это не так.
Помогите, в чем моя ошибка?


-----
Так было, так есть и так будет
 
 Top
OrmaJever Модератор
Отправлено: 22 Декабря, 2010 - 00:47:35
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




Правельно. preg_match() возвращает true т.к. находит подмаску а последнюю цыфру не учитывает. Чтобы работало нужно показать что дальше текста быть не может.
PHP:
скопировать код в буфер обмена
  1. if(!preg_match("/[+][7] [0-9]{3} [0-9]{3}[-][0-9]{2}[-][0-9]{2}$/i",$phone)){
  2. echo 'ОШИБКА: введенный мобильный телефон не соответствует шаблону, пример: +7 123 123-45-67 ';
  3. }
  4. else{
  5. echo 'Телефонный номер веден правильно';
  6. }

(Отредактировано автором: 22 Декабря, 2010 - 00:48:13)



-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB