Nic Lin's Blog

喜歡在地上滾的工程師

Devise password 密碼設置複雜度

目標:密碼設置必須要含英文及數字的組合

  validate :password_complexity
  
  def password_complexity
    if password.present?
       if !password.match(/^(?=.*[a-zA-Z])(?=.*[0-9])) 
         errors.add :password, "Password complexity requirement not met"
       end
    end
  end

拿掉位數限制,這部份 devise 本身就有 validation , 甚至必要時可以直接在 devise config 設定 password length

/^(?=.*[a-zA-Z])(?=.*[0-9])/
   |             |          
   |             |          
   |             |          
   |             |
   |             任意字符串后必须要有「数字」
   |                        
   任意字符串后必须要有「英文」

參考資源

comments powered by Disqus