我在User
模型代碼中爲我的用戶密碼添加了一個密碼正則表達式,如下所示。不接受密碼正則表達式
validates :password, presence: true, length: { minimum: 6 }
validate :password_complexity
has_secure_password
def password_complexity
if password.present? and not password.match(/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d). /)
errors.add :password, "must include at least one lowercase letter, one uppercase letter, and one digit"
end
end
當我試着Password1
,它不會接受它。任何想法,爲什麼這不會採取?
刪除空間的正則表達式的末尾:'/ ^(?= * [AZ])( ?=。* [AZ])(? =。* \ d)。| - here - | /' – dimakura
在這種情況下,https://regex101.com/是你的朋友。 –
我建議你不要使用這些東西。你會發現,你爲Rails應用程序增加了額外的開銷,只是有些人不能使用他們選擇的密碼。當網站告訴我使用什麼樣的密碼時,它總是讓我很煩惱。您很可能會在後端散列密碼,因此根本沒有必要使用此規則。 –