Ruby on rails 使用regex验证rails中密码中没有空格 class用户

Ruby on rails 使用regex验证rails中密码中没有空格 class用户,ruby-on-rails,Ruby On Rails,我正在尝试通过rspec测试密码验证。我想确保带有空格的密码无效。这是我的代码,但是当我测试带有空格的密码时,规范仍然没有通过(剩余的是8个或更多的字符)。你几乎拥有了它。您需要的是对空白的负面展望(?!*\s) 从密码中排除空白是相当奇怪的。如果有人真的想这样做的话,应该没有什么问题。减少可能的字符数会减少可能的密码(也称为),这可能会使密码更弱。最后,像这样复杂的密码规则可能会使使用密码生成器的人感到沮丧,因为这些生成器不能始终调整为遵循所有规则 相反,将安全问题留给专家解决。与其滚动您自

我正在尝试通过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