我無法驗證passord與() - = _ +,即它應該accept
這些特殊字符,但是當我用正則表達式作爲有()驗證密碼 - = _ +
`validates_format_of :password, :with => /^[A-Za-z0-9. ! @ # $ %^& * () _ - + = ]*\z/`
它不工作
其唯一的除了*,但不是accepting
() - = _ +在軌道上的紅寶石。
我無法驗證passord與() - = _ +,即它應該accept
這些特殊字符,但是當我用正則表達式作爲有()驗證密碼 - = _ +
`validates_format_of :password, :with => /^[A-Za-z0-9. ! @ # $ %^& * () _ - + = ]*\z/`
它不工作
其唯一的除了*,但不是accepting
() - = _ +在軌道上的紅寶石。
至少-
會導致問題,請考慮:[A-Z]
。 ^
可能會導致問題:[A-Z^Q]
是否意味着您的正則表達式風格中除Q以外的所有大寫字母? (如果是這樣,它後面的所有內容似乎都不存在...)
另請參見:零長度密碼有效嗎?
這些字符需要用\
逃脫,但我會認真建議您不驗證這樣的密碼! 限制用戶可以選擇什麼密碼?您可以人爲地減少角色池供他們選擇,從而使暴力攻擊變得更容易。
將用戶名強制爲ASCII a-z,0-9是一回事,但您絕對不應該將密碼限制爲這樣一小部分字符。
+1退後看到更廣闊的景象。爲什麼我們要限制密碼? – Thanatos 2010-06-08 06:32:00
validates_format_of:password,:with =>/^ [A-Za-z0-9。 ! @#$%^ & *()_ - + =] * \ z/
這工作。
你爲什麼要驗證密碼? – Kobi 2010-06-08 06:32:34
由於過於複雜(因而過於安全),拒絕複雜(因此相對安全)的密碼更爲糟糕。 – Quentin 2010-06-08 06:36:26