rails验证格式正则表达式在rubular中失败

时间:2012-03-12 21:42:44

标签: ruby-on-rails regex validation

我正在使用以下正则表达式在rails模型上添加验证检查:

validates :reference, :presence => true, :format => { :with => /^[a-zA-Z0-9_. ]*$/i }

此检查将匹配任何非字母数字字符,并忽略下划线和点。

在rubular.com上进行测试时,正则表达式无法匹配任何上述模式。相反,使用此正则表达式进行rubular匹配:

/[^a-zA-Z0-9_. ]/i

任何人都知道两者之间差异的原因是什么?

由于

1 个答案:

答案 0 :(得分:2)

^有两个含义。在括号外使用时,表示“行以”开头。在括号内使用时,意味着匹配的是相反的。我觉得我不清楚:[a-z]会匹配每个小写字母,而[^a-z]只会匹配小写字母。