2011-05-09 20 views
5

我有一個屬性是一個正則表達式的Rails模型。有沒有一種標準的方式來驗證該屬性的值是一個有效的正則表達式之前保存?有沒有Rails的標準正則表達式驗證器?

更新:每接受的答案作爲,這裏就是我所做的:

class Foo < ActiveRecord::Base 
    validates_each :bar do |model, attr, value| 
    begin 
     Regexp.compile value 
    rescue RegexpError => e 
     model.errors.add attr, "not a valid regular expression: #{e.message}" 
    end 
    end 
    # [...] 
end 
+0

我想驗證正則表達式.. ??或者使用正則表達式? – 2011-05-09 10:46:26

回答

4

你可以只問Regexp.compile和捕獲錯誤。

+1

或Ruby 1.9.2中的'Regexp.try_convert',無需發現錯誤 – 2011-05-09 11:59:35

+0

@Beerlington:'Regexp.try_convert(「re」)#=> nil' - 我認爲Josh想要允許字符串。 – 2011-05-09 12:36:48