【问题标题】:Regex to Match Urls in Ruby on Rails正则表达式匹配 Ruby on Rails 中的 URL
【发布时间】:2012-10-23 08:01:33
【问题描述】:

我环顾四周,但还没有真正找到适合我个人情况的 100% 达成交易的答案。

在我的 Ruby 应用程序中,我有一个用户共享系统,成员可以在其中发布“内容”。嗯,有时会员会发布链接,我注意到随着网站的发展,越来越多的用户抱怨没有可点击的链接。

我将如何利用正则表达式来匹配帖子中链接的网址。此外,我将如何在我的模型中应用它?

感谢您的帮助,在我所有的问题中,这对我来说真的很重要哈!

编辑

我想我的初始化帖子太模糊了......

我更想弄清楚如何在我的模型中使用正则表达式,而不是使用哪个正则表达式。

型号是class Share。并且成员的帖子呈现为<%= share.content %>,内容是我的共享表中的一列以及可访问的属性...

谢谢。

【问题讨论】:

标签: ruby-on-rails regex ruby-on-rails-3 hyperlink


【解决方案1】:

自动链接会做到这一点。它已被提取到它自己的宝石中......

https://github.com/tenderlove/rails_autolink

示例用法:

auto_link("Go to http://www.rubyonrails.org and say hello to david@loudthinking.com")
# => "Go to <a href=\"http://www.rubyonrails.org\">http://www.rubyonrails.org</a> and
#     say hello to <a href=\"mailto:david@loudthinking.com\">david@loudthinking.com</a>"

【讨论】:

  • 我看过自动链接,但我不确定它实际上是如何应用的,因为它的概要很模糊。
  • 我并不是要令人沮丧,但这只是大纲的副本……我说的很模糊。这什么也没告诉我。就像...我应该把这个放在哪里?该成员的帖子呈现为 所以我不知道这个“auto_link”标签的去向。 =/
  • &lt;%= auto_link(share.content) %&gt;
  • 这很容易。谢谢你的朋友:)
【解决方案2】:

试试:

^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?

来自IETF Specification on URLS。它匹配包括“ftp://...”在内的所有 URL,因此您可能需要对其进行一些调整。

【讨论】:

  • 感谢您花时间尝试和帮助,我真的很感激。但我的问题是“我将如何利用正则表达式来匹配帖子中链接的 url。此外,我将如何在我的模型中应用它?”我说“利用”,因为我不知道如何实现它的使用。 S抱歉,如果我含糊其辞。
猜你喜欢
  • 2020-10-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-10
相关资源
最近更新 更多