Подтвердить что ты не робот

"диапазон не в порядке в классе символов" в PHP регулярное выражение?

Я пытаюсь получить эту работу некоторое время, но напрасно. Я хочу создать регулярное выражение php, чтобы проверить, имеет ли строка по крайней мере одно число и по крайней мере один из символов среди (_- + = * &)

Это мое регулярное выражение

 $result = preg_match('/^(?=.*\d)(?=.*[_-+=*&]).{3,}$/',$pass);

Я получаю следующую ошибку      Предупреждение: preg_match() [function.preg-match]: Ошибка компиляции: диапазон не соответствует порядку в символьном классе со смещением 17 в myfile.php в строке 8

любая помощь?

4b9b3361

Ответ 1

- должен быть экранирован или помещен в начало/конец списка [...]:

$result = preg_match('/^(?=.*\d)(?=.*[-_+=*&]).{3,}$/',$pass);

Если вы этого не сделаете, - интерпретируется как оператор диапазона, а если x > y в [x-y], вы получите эту ошибку.