проверка пароля с помощью () - = _ + - PullRequest
2 голосов
/ 08 июня 2010

Я не могу проверить пароль с помощью () - = _ +, т. Е. Он должен accept эти специальные символы, но он не работает, когда я использую регулярное выражение как

`validates_format_of :password,  :with => /^[A-Za-z0-9. ! @ # $ % ^ & * ( ) _ - + = ]*\z/` 

это единственное исключение до *, но не accepting () - = _ + в ruby ​​на рельсах.

Ответы [ 3 ]

10 голосов
/ 08 июня 2010

Эти символы должны быть экранированы с \

Но я бы настоятельно рекомендовал вам не проверять пароли, подобные этому! Какой смысл в ограничивать , что пользователи могут выбрать для своих паролей? Вы искусственно сокращаете пул персонажей, чтобы они могли выбирать, что, в свою очередь, облегчает атаки методом перебора.

Включение имен пользователей в ASCII a-z, 0-9 - это одно, но вы не должны ограничивать пароли таким небольшим подмножеством символов.

1 голос
/ 08 июня 2010

По крайней мере, - вызовет проблемы, подумайте: [A-Z]. ^ может вызывать проблемы: означает ли [A-Z^Q] все заглавные буквы, кроме Q в вашем выражении регулярного выражения? (Если так, то все, что появилось после этого, похоже, там не было ...)

Также: пароли нулевой длины действительны?

0 голосов
/ 09 сентября 2010

validates_format_of: пароль,: с => / ^ [A-Za-z0-9. ! @ # $% ^ & * () _ - + =] * \ z /

Это сработало.

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