Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 括号搞乱了rails中的验证_Ruby On Rails_Regex_Validation - Fatal编程技术网

Ruby on rails 括号搞乱了rails中的验证

Ruby on rails 括号搞乱了rails中的验证,ruby-on-rails,regex,validation,Ruby On Rails,Regex,Validation,我有以下验证: validates_format_of :title, :with => /^[A-Z0-9 áàâäãçéèêëíìîïñóòôøöõúùûüý'-.]*$/i, :message => "must contain only letters, numbers, dashes, periods, and single quotes" 这在大多数情况下都有效,但当标题包含开括号和闭

我有以下验证:

  validates_format_of :title, 
                  :with => /^[A-Z0-9 áàâäãçéèêëíìîïñóòôøöõúùûüý'-.]*$/i,  
                  :message => "must contain only letters, numbers, dashes, periods, and single quotes"   

这在大多数情况下都有效,但当标题包含开括号和闭括号时,它会通过。有人知道如何解决这个问题,或者我的验证正则表达式可能有问题吗?

在正则表达式的末尾有
“-。

这意味着您希望允许撇号和句点之间(包括撇号和句点)的所有字符,就像在正则表达式开头使用A-Z和0-9时所做的那样

表达式
/['-.]/
允许所有这些字符:
'()*+,-.

在[]中,需要转义-字符。我认为这将按照您希望的方式进行:

/^[A-Z0-9 áàâäãçéèêëíìîïñóòôøöõúùûüý'\-.]*$/i
附言:你不必逃避现实。方括号内[]