2010-07-19 3 views
0

мне нужен регулярное выражение для пароля, который отвечает следующим ограничения в моем проекте рельсы:Регулярного выражения, чтобы исключить специальные символы

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

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

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

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

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

ответ

3
/^(?=.*\d)(?=.*[a-zA-Z])[0-9a-zA-Z]{8,16}$/ 

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

Взгляд только гарантирует, что есть хотя бы одна цифра и одна буква - это ничего не говорит о других персонажах. Также обратите внимание, что я обновил вашу соответствующую букву - вам не нужны два класса символов.

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

+0

awesome. Это работает. Спасибо – Priyank

+3

Единственные времена, когда я когда-либо видел «требования к буквенно-цифровому», это было потому, что некоторые идиоты не могли быть обеспокоены, чтобы узнать, как дезинфицировать/удалять данные. Не то, чтобы ОП был обязательно этим идиотом - я собираюсь поспорить, что он знает несколько. – cHao

+1

Ну, если бы это зависело от меня, я бы позволил пользователю ввести весь мусор в мире за свой пароль. Однако иногда; единообразие с устаревшим сайтом более важно для бизнеса, чем безопасность. Иди цифра! :) – Priyank

Смежные вопросы