验证包含某个字符串Rails

时间:2015-01-14 05:21:51

标签: ruby-on-rails ruby validation ruby-on-rails-4

我的一个模型中有一个名为" facebook_url"的参数。我怎样才能确定用户输入包含" facebook.com"并不是一些随机的网站?

现在我有:

unless self.facebook_url[/\Afacebook.com\/\//]
  self.facebook_url = "" unless self.facebook_url == ""
end

但这并不是我想要的。

1 个答案:

答案 0 :(得分:4)

正则表达式为:

\A((http|https):\/\/)?(www.)?facebook.com\/

将匹配包含有效facebook url的字符串:

现在,要验证您的rails模型,请在模型文件上使用rails验证,如下所示:

validates :facebook_url, format: { with: /\A((http|https):\/\/)?(www.)?facebook.com\//,
message: "use a valid facebook url" }

使用您的示例代码,将是:

if self.facebook_url.match(/\A((http|https):\/\/)?(www.)?facebook.com\//)
 # valid facebook url
else
 # invalid facebook url
end

您可以在www.rubular.com

上测试正则表达式