我的一个模型中有一个名为“facebook_url”的参数。我如何确定用户输入包含“facebook.com”而不是某个随机网站?
现在我有:
unless self.facebook_url[/\Afacebook.com\/\//]
self.facebook_url = "" unless self.facebook_url == ""
end
但这并不是我想要的那样。
最佳答案
正则表达式为:
\A((http|https):\/\/)?(www.)?facebook.com\/
将匹配包含有效 facebook url 的字符串:
- facebook.com/
- www.facebook.com/
- https://facebook.com/
- https://www.facebook.com/
- http://facebook.com/
- http://www.facebook.com/
现在,要验证您的 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 上测试正则表达式
关于ruby-on-rails - 验证包含特定字符串的 Rails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27936316/