选择并在文本中包装字符串

时间:2013-09-17 11:42:43

标签: jquery html twitter

我通过Twitter API生成推文,例如:

<article class="tweet">
    Some users may have experienced issues accessing http://t.co/zDdcbPNfnU on @Firefox 22+. We've reached out to Mozilla and it's now resolved.
</article>
<article class="tweet">
  The issue with viewing photos is now resolved. Thanks for your patience!
</article>

链接没有使用正确的标记生成,所以现在我要做的是选择以http://开头的任何单词并将这些单词包装在锚标记中。

我以为我可以做类似的事情,但这显然不起作用:

$('article.tweet').each(function(){
  var linkHref = $(this).html().find('http://');
  $(linkHref).wrap('<a href="' + linkHref + '" />');
});

如何使用jQuery选择链接?

1 个答案:

答案 0 :(得分:2)

您可以尝试使用RegExp替换它:

$('article.tweet').each(function(){
  var linkHref = $(this).html().replace(/http:\/\/\S+/g, function (match) {
     return "<a href='" + match + "'>" + match + "</a>"
  });
  $(this).html(linkHref);
});

replace()的第二个参数中提供一个函数来格式化每个匹配的URL。

Fiddle example