Регулярное выражение для исключения специальных символов - PullRequest
0 голосов
/ 19 июля 2010

Мне нужно регулярное выражение для пароля, которое соответствует следующим ограничениям в моем проекте rails:

  • имеют не менее 8 и не более 16 символов
  • быть только буквенно-цифровым
  • содержит как минимум одну букву и одну цифру.

Мое текущее регулярное выражение:

/^(?=.*\d)(?=.*([a-z]|[A-Z])).{8,16}$/

Это позволяет мне все ограничения, но часть специальных символов не работает. Что я делаю не так? Может кто-нибудь исправить это регулярное выражение?

Заранее спасибо.

1 Ответ

3 голосов
/ 19 июля 2010
/^(?=.*\d)(?=.*[a-zA-Z])[0-9a-zA-Z]{8,16}$/

Последняя часть вашего регулярного выражения, .{8,16}, допускает любой символ с точкой.

Предварительный просмотр только гарантирует, что есть хотя бы одна цифра и одна буква - он не говоритчто-нибудь о других персонажах.Кроме того, обратите внимание, что я обновил вашу часть для сопоставления букв - вам не нужны два класса символов.

Запрещение специальных символов в пароле полностью противоречит интуиции.Почему ты это делаешь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...