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

标签 validation model ruby-on-rails-5

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

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

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

最佳答案

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

/^(?!\d)/

使用您的代码将是
validates_format_of :my_str, :with => /^(?!\d)/, :allow_blank = true

或者:
documentation

Alternatively, you can require that the specified attribute does not match the regular expression by using the :without option.



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

validates_format_of通过测试属性值是否匹配给定的正则表达式来验证属性的值,该表达式使用 :with 指定。或 :without选项

关于validation - 如何验证我的模型属性是否与正则表达式不匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43355364/

相关文章:

r - 手动建立逻辑回归模型以在R中进行预测

ruby-on-rails - rails - 在 ruby​​ 代码中将 HTML 元素包裹在 link_to() 的文本周围,而不禁用所有转义

ruby-on-rails - 未应用 ActiveRecord cache_timestamp_format 配置

javascript - 如何计算字符串中的某些字符

php - 我的php表单未检查在表单中输入的电子邮件是否有效

php - 登录系统,读取id和密码即可登录

php - 如何为自己的 PDO 数据库类验证论坛帖子的内容? (防止 SQL 注入(inject))

ruby - 轨道模型 : validates_uniqueness_of doesn't remove trailing spaces not leading ones before unique check?

ios - 确定核心数据模型中何时有新版本

ruby-on-rails - activeadmin 表单中所需的输入不起作用