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 :: проверка с помощью регулярных выражений
Покинул форум
Сообщений всего: 338
Дата рег-ции: Сент. 2012 Откуда: Гродно, Беларусь
Помог: 0 раз(а)
Уважаемые форумчане!!!
Прошу оказать помощь. Мне необходимо организовать проверку введеных пользователем данных. Это должно быть число из 8 цифр.
Каков должен быть шаблон для проверки с помощью preg_match.
Заранее спасибо за помощь
LIME
Отправлено: 13 Июля, 2013 - 17:54:52
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Покинул форум
Сообщений всего: 338
Дата рег-ции: Сент. 2012 Откуда: Гродно, Беларусь
Помог: 0 раз(а)
LIME пишет:
#^\d{8}$#
LIME! Помогите расшифровать данный шаблон.
d-означает цифрыю
{8}-длина строки
Что означают решетки?
Для чего делается экранивароние?
почему ставится ^ и $ ? Это значит точное совпадение?
LIME
Отправлено: 13 Июля, 2013 - 18:07:44
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
решетки это ограничитель шаблона...он может быть любым
экранирование чтоб показать что это не символ d а число
^ начало строки
$ конец строки
значит 8 цифр от начала и до конца строки(значит ничего больше в строке нет) (Добавление)
перевод строки \n ...зачем тут экранирование?
alnik-75
Отправлено: 13 Июля, 2013 - 18:11:59
Посетитель
Покинул форум
Сообщений всего: 338
Дата рег-ции: Сент. 2012 Откуда: Гродно, Беларусь
Помог: 0 раз(а)
LIME пишет:
решетки это ограничитель шаблона...он может быть любым
экранирование чтоб показать что это не символ d а число
^ начало строки
$ конец строки
значит 8 цифр от начала и до конца строки(значит ничего больше в строке нет) (Добавление)
перевод строки \n ...зачем тут экранирование?
чтобы придать символу n специальную функцию? А что было бы если не было перед ней обратного слэша?
LIME
Отправлено: 13 Июля, 2013 - 18:14:16
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
странный вопрос...была бы буква n
alnik-75
Отправлено: 13 Июля, 2013 - 18:15:32
Посетитель
Покинул форум
Сообщений всего: 338
Дата рег-ции: Сент. 2012 Откуда: Гродно, Беларусь
Помог: 0 раз(а)
LIME пишет:
странный вопрос...была бы буква n
Я это понял. Спасибо за помощь. Стыдно, что изучаю PHP почти год, а в регулярных выражениях "ни в зуб ногой"
AlexAnder
Отправлено: 13 Июля, 2013 - 18:16:13
Частый посетитель
Покинул форум
Сообщений всего: 915
Дата рег-ции: Авг. 2012 Откуда: Россия
Помог: 34 раз(а)
LIME пишет:
странный вопрос...была бы буква n
\d (Добавление)
Цитата:
Помогите расшифровать данный шаблон.
d-означает цифрыю
{8}-длина строки
Что означают решетки?
Для чего делается экранивароние?
почему ставится ^ и $ ? Это значит точное совпадение?
стреляешь как с пушки, интересно, а в гугл пробовал целиться?
Покинул форум
Сообщений всего: 338
Дата рег-ции: Сент. 2012 Откуда: Гродно, Беларусь
Помог: 0 раз(а)
AlexAnder!
Не особо! Особой необходимости не было. Немного понимаю значения символов, но чтобы слепить из этого шаблон, нужно практиковаться, а я этого, как раз и не делал.
Получив совет от LIME, я смогу подобные теперь шаблоны строить))))))))))))
teddy
Отправлено: 13 Июля, 2013 - 19:20:44
Участник
Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013
Помог: 91 раз(а)
alnik-75
alnik-75 пишет:
Прошу оказать помощь. Мне необходимо организовать проверку введеных пользователем данных. Это должно быть число из 8 цифр.
Каков должен быть шаблон для проверки с помощью preg_match.
Интересно, чего вы так влюбились в preg_match? Я ни чуть не хочу задеть ваше мнение, мне просто самому интересно... Я бы например сделал приблизительно так, если мне нужно было бы проверить число:
Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013
Помог: 91 раз(а)
alnik-75 пишет:
Почему тогда не is_numeric()?
Я сейчас переведу вам этот код на Русский )
Что творится в if:
- Если пользователь ввел не число, что угодно но не число, или он ввел число, но длина числа не равна 8 символов, то мы попадаем в блок if и пользователь получает ошибку.
Что творится в else:
Если всё хорошо, пользователь ввел число, мы можем отфильтровать это число ДО ЦЕЛОГО при необходимости. Тоесть что бы не смогли прислать -150 или 15.5
И дальше что то делать в этом блоке с этими данными в зависимости от необходимости
Покинул форум
Сообщений всего: 338
Дата рег-ции: Сент. 2012 Откуда: Гродно, Беларусь
Помог: 0 раз(а)
Я то понял, что там в if else творится. Я просто к тому, что, согласно мануалу для проверки введенных пользователем данных в форму(а именно это я в первом сообщении указал) советуется использовать is_numeric(). Вот я к чему)))))))))))))))
teddy
Отправлено: 13 Июля, 2013 - 19:44:53
Участник
Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013
Помог: 91 раз(а)
alnik-75
Потому что is_numeric может принимать ещё и числовые строки. А is_interger строго по типу...
Это уже от конкретного случая зависит... Можно ещё не != а !== сделать, чтоб железно, по типу ) (Добавление)
Тоесть при is_numeric пройдет "12345678" а при is_integer нет... только без кавычек
Покинул форум
Сообщений всего: 338
Дата рег-ции: Сент. 2012 Откуда: Гродно, Беларусь
Помог: 0 раз(а)
teddy пишет:
alnik-75
Потому что is_numeric может принимать ещё и числовые строки. А is_interger строго по типу...
Это уже от конкретного случая зависит... Можно ещё не != а !== сделать, чтоб железно, по типу ) (Добавление)
Тоесть при is_numeric пройдет "12345678" а при is_integer нет... только без кавычек
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.