"диапазон не в порядке в классе символов" в PHP регулярное выражение?
Я пытаюсь получить эту работу некоторое время, но напрасно.
Я хочу создать регулярное выражение php, чтобы проверить, имеет ли строка по крайней мере одно число и по крайней мере один из символов среди (_- + = * &)
Это мое регулярное выражение
$result = preg_match('/^(?=.*\d)(?=.*[_-+=*&]).{3,}$/',$pass);
Я получаю следующую ошибку Предупреждение: preg_match() [function.preg-match]: Ошибка компиляции: диапазон не соответствует порядку в символьном классе со смещением 17 в myfile.php в строке 8
любая помощь?
Ответы
Ответ 1
-
должен быть экранирован или помещен в начало/конец списка [...]
:
$result = preg_match('/^(?=.*\d)(?=.*[-_+=*&]).{3,}$/',$pass);
Если вы этого не сделаете, -
интерпретируется как оператор диапазона, а если x > y
в [x-y]
, вы получите эту ошибку.