Ruby on rails 否定的正则表达式验证的格式
在我的rails模型中,我有一些模板系统。我想确保编辑它的用户不会犯意外错误,所以我使用了一些简单的验证器 他们可以使用类似于Ruby on rails 否定的正则表达式验证的格式,ruby-on-rails,regex,validation,Ruby On Rails,Regex,Validation,在我的rails模型中,我有一些模板系统。我想确保编辑它的用户不会犯意外错误,所以我使用了一些简单的验证器 他们可以使用类似于##user_id##的标记,这些标记将在以后被替换。我想确保他们不会输入像#########这样包含太多#的内容,因此字段中不能出现任何###(或#####) class Template validates_format_of :text, :with => /##user_id##/, :message => "##user_id## mu
##user_id##
的标记,这些标记将在以后被替换。我想确保他们不会输入像#########
这样包含太多#
的内容,因此字段中不能出现任何###
(或#####
)
class Template
validates_format_of :text, :with => /##user_id##/,
:message => "##user_id## must be present"
validates_format_of :text, :not_with => /###/,
:message => "Too many #"
end
不幸的是,没有:没有带选项的\u。。。是否有机会使用:使用-regex解决此问题,还是应该使用单独的验证方法
我尝试了一些消极的前瞻,但由于(大部分)有几个##
,只有一个###
,它们总是匹配其中一个。这是怎么回事
validates_format_of :text, :with => /(^|[^#])##user_id##($|[^#])/
编辑:我用我的正则表达式复制了acheong87的示例。这个呢
validates_format_of :text, :with => /(^|[^#])##user_id##($|[^#])/
编辑:我用我的正则表达式复制了acheong87的示例。你能这样做吗
/^(.(?!###+user_id##|##user_id###+))*$/
这里有一个现场演示:
用(更多)英语,它说
一种字符串,其中没有字符后跟###+user_id##
或##user_id###+
你能这样做吗
/^(.(?!###+user_id##|##user_id###+))*$/
这里有一个现场演示:
用(更多)英语,它说
一种字符串,其中没有字符后跟###+user_id##
或##user_id###+
使用:不带选项:
validates_format_of :text, :without => /###/, :message => "Too many #"
使用:不带选项:
validates_format_of :text, :without => /###/, :message => "Too many #"
这是我以前尝试过的某种查询,但不幸的是它不适用于
的validates\u format\u这是我以前尝试过的某种查询,但不幸的是它不适用于