为什么这个Rails正则表达式匹配这个字符串?

时间:2011-10-13 06:48:56

标签: ruby-on-rails regex

我正在使用以下正则表达式来验证我的一个模型

validates :login,
  :format => {:with => /[A-Za-z][A-Za-z0-9_]+/}

我的一个测试失败了,因为这个正则表达式匹配这个字符串,并将其作为有效的

传递
a+df

我在这里缺少什么?

2 个答案:

答案 0 :(得分:6)

它匹配df子字符串。使用anchors强制正则表达式与字符串完全匹配:

validates :login,
  :format => {:with => /\A[A-Za-z][A-Za-z0-9_]+\Z/}

答案 1 :(得分:1)

试试这个正则表达式 ^[A-Za-z][A-Za-z0-9_]+$