Ruby on rails 使用regex验证rails中密码中没有空格 class用户
我正在尝试通过rspec测试密码验证。我想确保带有空格的密码无效。这是我的代码,但是当我测试带有空格的密码时,规范仍然没有通过(剩余的是8个或更多的字符)。你几乎拥有了它。您需要的是对空白的负面展望<代码>(?!*\s)Ruby on rails 使用regex验证rails中密码中没有空格 class用户,ruby-on-rails,Ruby On Rails,我正在尝试通过rspec测试密码验证。我想确保带有空格的密码无效。这是我的代码,但是当我测试带有空格的密码时,规范仍然没有通过(剩余的是8个或更多的字符)。你几乎拥有了它。您需要的是对空白的负面展望(?!*\s) 从密码中排除空白是相当奇怪的。如果有人真的想这样做的话,应该没有什么问题。减少可能的字符数会减少可能的密码(也称为),这可能会使密码更弱。最后,像这样复杂的密码规则可能会使使用密码生成器的人感到沮丧,因为这些生成器不能始终调整为遵循所有规则 相反,将安全问题留给专家解决。与其滚动您自
从密码中排除空白是相当奇怪的。如果有人真的想这样做的话,应该没有什么问题。减少可能的字符数会减少可能的密码(也称为),这可能会使密码更弱。最后,像这样复杂的密码规则可能会使使用密码生成器的人感到沮丧,因为这些生成器不能始终调整为遵循所有规则 相反,将安全问题留给专家解决。与其滚动您自己的密码强度检查器,还不如说已经有了任何数字。这也节省了开发时间、调试和维护 这是基于熵的,也是基于规则的。两者都提供ActiveRecord验证。如果你用的话,那就是
还有。太酷了!我会调查的。非常感谢你!
class User < ApplicationRecord
PASSWORD_FORMAT = /\A
(?=.*[^\\s-]) # Must not have any blank spaces
(?=.{8,}) # Must contain 8 or more characters
(?=.*[A-Z]) # Must contain an upper case character
(?=.*[[:^alnum:]]) # Must contain a symbol
/x
validates :password_digest, presence: true, format: { with: PASSWORD_FORMAT }
validates :email, presence: true, format: { with: URI::MailTo::EMAIL_REGEXP }
validates :first_name, presence: true
validates :last_name, presence: true
has_many :companies
end
PASSWORD_FORMAT = /\A
(?!.*\s) # Must not have any blank spaces
(?=.{8,}) # Must contain 8 or more characters
(?=.*[A-Z]) # Must contain an upper case character
(?=.*[[:^alnum:]]) # Must contain a symbol
/x