Регулярные выражения

1.15K
.
ПеревозЧЕГ
Лопух Паутинистый
Привет всем. такой вопрос по регуляркам. Почему выражение не проверяет то что строка меньше 4 символов и больше 20?
preg_match('/^[0-9][a-zA-Z0-9-_\.]{4,20}$/', $login)
preg_match('/[^\dA-Za-z]{4,20}$/', $pass)
.
ПеревозЧЕГ
Лопух Паутинистый
И вообще правильно ли регулярка составлена?
.
# ПеревозЧЕГ (09.06.2016 / 20:56)
Привет всем. такой вопрос по регуляркам. Почему выражение не проверяет то что строка меньше 4 символов и больше 20?

preg_match('/^[0-9][a-zA-Z0-9-_\.]{4,20}$/', $login)
preg_match('/[^\dA-Za-z]{4,
Возможно искомый текст не подпадает под этот шаблон. Если тебе надо проверять по длинне символов, то заюзай strlen()
.
ПеревозЧЕГ
Лопух Паутинистый
ДоХтор, в данном случае я проверяю логин и пароль чтобы они помимо разрешенных символов еще и длину имели соответствующую. хотел сразу регуляркой пробить
.
ПеревозЧЕГ
Лопух Паутинистый
if(preg_match('/[^\dA-Za-z]{4,20}$/', $pass)){
        $error['pass'][] = 'Пароль должен содержать не менее 4 и не более 20 символов';
    }
.
Enter нажат, к чему теперь рыданья…
ПеревозЧЕГ, а зачем вначале [0-9]?
.
ПеревозЧЕГ
Лопух Паутинистый
# Sitego (09.06.2016 / 21:26)
ПеревозЧЕГ, а зачем вначале [0-9]?
логин с цифр не должен начинаться
.
(\/)____o_O____(\/)
Sitego, это порядок цифр от 0 до 9
.
Sitego
Enter нажат, к чему теперь рыданья…
# ПеревозЧЕГ (09.06.2016 / 21:29)
логин с цифр не должен начинаться
Так оно и не будет работать.
Этим выражением [0-9][a-zA-Z0-9-_\.]{4,20} ты указываешь шаблон, что вначале строки идёт одна цифра от 0 до 9, а за ней буквы малого и большого регистра, или цифры, с точкой, минусом, нижним подчёркиванием, количеством от 4 до 20.
.
Enter нажат, к чему теперь рыданья…
ПеревозЧЕГ, если тебе надо в шаблоне указать, что строка не должна начинаться с цифры, то это будет так ^\D
Всего: 55