我正在尝试在Ruby(Rails)中编写正则表达式,以便用户名的字符仅包含数字和字母(也没有空格)。
我有这个正则表达式:
我在用户.rb模型中实现的完整代码如下:
我做错了什么,如何修复这个正则表达式,以便它只对数字和字母有效,而不包含空格?谢谢。
我有这个正则表达式:
/^[a-zA-Z0-9]+$/
,但它似乎不起作用,并且我在Rails中收到一个错误,提示“提供的正则表达式使用多行锚点(^或$),这可能会造成安全风险。您是否想使用\A和\z,或忘记添加:multiline => true选项?"我在用户.rb模型中实现的完整代码如下:
class User < ActiveRecord::Base
before_save { self.email = email.downcase }
validates :name, presence: true, length: { maximum: 50 }
VALID_USERNAME_REGEX = /^[a-zA-Z0-9]+$/
validates :username, presence: true, length: { maximum: 20 },
format: { with: VALID_USERNAME_REGEX },
uniqueness: { case_sensitive: false }
VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i
validates :email, presence: true, length: { maximum: 255 },
format: { with: VALID_EMAIL_REGEX },
uniqueness: { case_sensitive: false }
has_secure_password
validates :password, length: { minimum: 6 }
end
我做错了什么,如何修复这个正则表达式,以便它只对数字和字母有效,而不包含空格?谢谢。