使用() - = _ +验证密码

时间:2010-06-08 06:27:01

标签: ruby-on-rails validation

我无法使用() - = _ +验证passord,即它应该accept这些特殊字符但是当我使用正则表达式时它不起作用

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

它唯一的例外是直到*但不是accepting() - = _ +在ruby on rails。

3 个答案:

答案 0 :(得分:10)

这些字符需要使用\

进行转义

但我会认真建议你验证这样的密码! 限制用户可以为其密码选择的内容有什么意义?你人为地减少了字符池供他们选择,这反过来又使暴力攻击更容易。

将用户名强制为ASCII a-z,0-9是一回事,但你当然不应该将密码限制在如此小的字符子集中。

答案 1 :(得分:1)

-至少会导致问题,请考虑:[A-Z]^可能会导致问题:[A-Z^Q]是否表示除了正则表达式中的Q之外的所有大写字母? (如果是这样,它之后的所有内容似乎都不存在......)

另外:零长度密码有效吗?

答案 2 :(得分:0)

validates_format_of:password,:with => / ^ [A-ZA-Z0-9。 ! @#$%^& *()_ - + =] * \ z /

这很有用。