Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.188.142.146] |
|
Страницы: (2) [1] 2 все ( Перейти к последнему сообщению ) |
Сообщ.
#1
,
|
|
|
Добрый день,
подскажите пожалуйста как проверить строку на соответствие заданному шаблону? Есть шаблон вида: "AB1234" (сначала две буквы латинского алфавита, затем четыре цифры), нужно проверить, соответствует ли строка этому шаблону или нет. Что-то не могу разобраться с рег. выражением как это сделать. $str = "AB1234"; preg_match("/(^[a-z]{2}\d{4})+/", $str); |
Сообщ.
#2
,
|
|
|
Цитата iPhonesoft @ Надо либо i (ignore case) - модификатор ставить, либо перечислять [a-zA-Z] Что-то не могу разобраться с рег. выражением как это сделать. |
Сообщ.
#3
,
|
|
|
У тебя в регулярке учитывается регистр - нижний, а в проверочном слове только верхний
|
Сообщ.
#4
,
|
|
|
ой, уже успели ответить, опоздал
|
Сообщ.
#5
,
|
|
|
Цитата Zafod Biblebox @ У тебя в регулярке учитывается регистр - нижний, а в проверочном слове только верхний Да вот так тоже не работает к сожалению $str = "AB1234"; preg_match("/(^[a-z]{2}\d{4})+/", strtolower($str)); |
Сообщ.
#6
,
|
|
|
Цитата iPhonesoft @ А у тебя там точно латиница? Да вот так тоже не работает к сожалению Добавлено И все таки правильнее будет так: preg_match("/([a-z]{2}\d{4})+/i", $str); Добавлено Кстати, а зачем там было ^ ? Добавлено И зачем у нас выбор подгруппы? Строка должна целиком подходить под условия или в ней должны содержаться подстроки данного вида? |
Сообщ.
#7
,
|
|
|
Цитата fatalist @ Добавлено И все таки правильнее будет так: preg_match("/([a-z]{2}\d{4})+/i", $str); почему-то Ваш пример у меня не сработал. Ниже проверочный код: <?php $str = "ab1234"; // Проверяем, соответствует ли строка маске вида: AB1234 if(!preg_match("/([a-z]{2}\d{4})+/i", strtolower($str))) { // Если сторока не соответствует маске: echo "MASK ERROR"; } // Если соответствует: else { echo "OK"; } ?> |
Сообщ.
#8
,
|
|
|
preg_match("/[a-z]{2}\d{4}/i")
Добавлено Проверил в онлайн конструкторе - предыдущий вариант тоже работает... щас проверю у себя на серваке... Добавлено На моем серваке твой код из поста #9 тоже работает, так что "не морочьте мне голову" Добавлено Единственное, strtolower я таки убрал... хотя слабо себе представляю, чем он мог помешать... |
Сообщ.
#9
,
|
|
|
Цитата fatalist @ На моем серваке твой код из поста #9 тоже работает, так что "не морочьте мне голову" Вот это новости! Спасибо Вам за проверку кода. Видимо у меня причина неполадки связана с версией PHP? Очень странно. |
Сообщ.
#10
,
|
|
|
Цитата iPhonesoft @ Вряд ли... код чуть более, чем полностью универсален... хотя кто его знает... У меня если что 5.3... Вот это новости! Спасибо Вам за проверку кода. Видимо у меня причина неполадки связана с версией PHP? Очень странно. |
Сообщ.
#11
,
|
|
|
У меня PHP Version 5.4.4
|
Сообщ.
#12
,
|
|
|
Цитата iPhonesoft @ И что, в ней pcre переделали что-ли? У меня PHP Version 5.4.4 |
Сообщ.
#13
,
|
|
|
5.5.8 x64 нормально пашет. Может модификатор u добавить?
|
Сообщ.
#14
,
|
|
|
ну попробуй /\w{2}\d{4}/i
|
Сообщ.
#15
,
|
|
|
Нет, не знаю почему, но не хочет у меня работать. Спасибо всем большое за помощь. Буду искать ошибку у себя.
|