validates :tag, format: { with: /[^?]+/, message:'cannot have question marks') }
我希望此值的验证失败:
tag = "why not?"
并通过这个:
tag = "why not"
我不明白如何简单地选择'?'在带有正则表达式的字符串中。
谢谢!
答案 0 :(得分:1)
您可以像这样编写验证:
validates :tag, format: { without: /\?/, message: 'cannot have question marks' }
参考:http://apidock.com/rails/ActiveModel/Validations/HelperMethods/validates_format_of
答案 1 :(得分:0)
如果您要删除字符串中的{strong>全部 ?
,请执行以下操作:"why not?".gsub("?", '')
修改强> 我只是重新阅读你的问题,你想要你的验证的正则表达式(呃,我需要咖啡)。
您需要转义?
,因为正则表达式中的?
表示其中一个的零所以只需将您的验证更改为 - > validates :tag, format: { with: /\?/, message:'cannot question marks') }