2

假设我有一个字符串,其中包含从 Twitter 抓取的文本,如下所示:

myString = "I like using @twitter, because I learn so many new things! [line break]
Read my blog: http://www.myblog.com #procrastination"

然后在视图中显示推文。但是,在此之前,我想转换字符串,以便在我看来:

  1. @twitter 链接到http://www.twitter.com/twitter
  2. URL 变成链接(其中 URL 仍然是链接文本)
  3. #procrastination 变成https://twitter.com/i/#!/search/?q=%23procrastination,其中#procrastination 是链接文字

我敢肯定那里一定有一颗宝石可以让我这样做,但我找不到。我遇到了twitter-text-rb但我不太清楚如何将其应用于上述内容。我已经使用正则表达式和其他一些方法在 PHP 中完成了它,但它有点乱!

提前感谢任何解决方案!

4

2 回答 2

10

twitter-text gem 为您提供了几乎所有的工作。手动安装它(gem install twitter-text如果需要,请使用 sudo)或将其添加到您的 Gemfile(gem 'twitter-text'),如果您正在使用 bundler 并执行bundle install.

然后在类的顶部包含 Twitter 自动链接库(require 'twitter-text'和),并使用输入字符串作为参数调用该方法,它将为您提供自动链接版本include Twitter::Autolinkauto_link(inputString)

完整代码:

require 'twitter-text'
include Twitter::Autolink

myString = "I like using @twitter, because I learn so many new things! [line break] 
Read my blog: http://www.myblog.com #procrastination"

linkedString = auto_link(myString)

如果你输出linkedString的内容,你会得到以下输出:

I like using @<a class="tweet-url username" href="https://twitter.com/twitter" rel="nofollow">twitter</a>, because I learn so many new things! [line break] 
Read my blog: <a href="http://www.myblog.com" rel="nofollow">http://www.myblog.com</a> <a class="tweet-url hashtag" href="https://twitter.com/#!/search?q=%23procrastination" rel="nofollow" title="#procrastination">#procrastination</a>
于 2012-09-22T20:43:36.353 回答
0

使用jQuery Tweet Linkify

一个小型 jQuery 插件,可将 @mention 文本转换为指向实际 Twitter 个人资料的超链接,将 #hashtag 文本转换为真正的主题标签搜索,以及将超链接文本转换为实际超链接

于 2012-11-09T18:42:13.637 回答