我无法使用() - = _ +验证passord,即它应该accept
这些特殊字符但是当我使用正则表达式时它不起作用
`validates_format_of :password, :with => /^[A-Za-z0-9. ! @ # $ % ^ & * ( ) _ - + = ]*\z/`
它唯一的例外是直到*但不是accepting
() - = _ +在ruby on rails。
答案 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 /
这很有用。