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

1.91K
.
ПеревозЧЕГ
Лопух Паутинистый

Привет всем. такой вопрос по регуляркам. Почему выражение не проверяет то что строка меньше 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