【问题标题】:Validation to contain a certain string Rails验证是否包含某个字符串 Rails
【发布时间】:2015-01-14 05:21:51
【问题描述】:

我的一个模型中有一个名为“facebook_url”的参数。如何确定用户输入包含“facebook.com”并且不是一些随机网站?

现在我有:

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

但这并不是我想要的。

【问题讨论】:

  • 你的意思是 URL 是 'facebook.com' 还是 'mfacebook.com'、'test-facebook.com' 等等?
  • 如“facebook.com/blahblahblah”。我想有人可以通过输入“test-facebook.com”之类的东西来通过它,但我不知道如何验证这样的东西。

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


【解决方案1】:

正则表达式是:

\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上测试正则表达式

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多