对姓名'的验证不充分使用/ + \ w /。使用\ A和\ z作为锚点

时间:2016-08-31 11:26:23

标签: ruby-on-rails

我使用制动器在我的应用程序中生成扫描报告。它在我的模型页面中生成了一个高可信度的格式验证安全警告:

  

对姓名'的验证不足使用/ + \ w /。使用\ A和\ z作为   第54行附近的锚点

这是我模型中我遇到错误的一行:

validates_format_of :name, :with => / +\w/, :message => "must be your first and last name."

如果名称字段中没有空格,我将显示上述验证。怎么能显示它\ A和\ z格式?

1 个答案:

答案 0 :(得分:5)

Brakeman建议在验证正则表达式中使用\A\z - 锚点。它们定义匹配必须从(\A)开始到(\z)结束的位置。没有它们,正则表达式可以简单地匹配名称的任何部分。让我们将你的正则表达式转换为包含整个字符串:

/\A\w+ +\w+\z/

如果您只想接受一个空格,可以删除空格后的+

也不建议使用普通的正则表达式行开头(^)和结束($)锚点,因为只要有一行匹配就足够了,其他所有行都可能无效