ArgumentError:提供的正则表达式使用多行锚点(^或$)

时间:2016-04-26 12:47:44

标签: ruby-on-rails ruby ruby-on-rails-4

我在代码中添加了密码限制。之后我收到错误:

ArgumentError: The provided regular expression is using multiline anchors (^ or $), which may present a security risk. Did you mean to use \A and \z, or forgot to add the :multiline => true option?

我的 user.rb 文件是

validates :password, :format => {:with => /^(?=.*[a-zA-Z])(?=.*[0-9]).{6,}$/}

1 个答案:

答案 0 :(得分:1)

^ $\A \z对之间的差异是第一个匹配逐行,因此需要启用多行模式才能正常工作,第二个匹配整个字符串,从开始到结束了。请参阅ruby docs中的定义。