如何验证我的模型属性是否与正则表达式不匹配?

时间:2017-04-11 20:11:45

标签: validation model ruby-on-rails-5

我正在使用Rails 5.如何为我的模型创建验证规则,如果属性与模式不匹配,则验证规则是否有效?我有这个

validates_numericality_of :my_str, :with => /\d:\d/, :allow_blank = true

但我真正想说的是验证字符串是否与正则表达式不匹配。

1 个答案:

答案 0 :(得分:1)

我所理解的是,如果验证不是数字,您希望验证通过,那么为什么不更改正则表达式以匹配除数字之外的任何内容:

/^(?!\d)/

使用你的代码就是

validates_format_of :my_str, :with => /^(?!\d)/, :allow_blank = true

或者:
正如documentation所说

  

或者,您可以要求指定的属性不要   使用:without选项匹配正则表达式。

所以:

validates_format_of :my_str,format: { without => /\d:\d/},  allow_blank = true

validates_format_of验证属性'值是否通过测试它们是否与使用:with:without选项指定的给定正则表达式匹配