我有以下验证:
validates_format_of :title,
:with => /^[A-Z0-9 áàâäãçéèêëíìîïñóòôøöõúùûüý'-.]*$/i,
:message => "must contain only letters, numbers, dashes, periods, and single quotes"
这大部分时间都有效,但当标题包含一个打开和关闭的括号时,它会通过。有人知道怎么解决这个问题,或者我的验证正则表达式有问题吗?
答案 0 :(得分:3)
在正则表达式结束时,您有'-.
这意味着您希望允许撇号和句点之间的所有字符(就像您在正则表达式的开头使用A-Z和0-9一样)。
表达式/['-.]/
允许所有这些字符:'()*+,-.
在[]中,你需要转义 - 字符。我认为这将以您希望的方式运作:
/^[A-Z0-9 áàâäãçéèêëíìîïñóòôøöõúùûüý'\-.]*$/i
PS。你不必逃避。在方括号内[]