jQuery文本到链接脚本?[副本]

这个问题在这里已经有答案了
如何用链接替换普通URL?

(25个答案)

七年前关闭的

有人知道有一个脚本可以选择URL的所有文本引用,并自动用指向这些位置的锚定标记替换它们吗

例如:
http://www.google.com 
会自动变成
&lt;a href=”http://www.google.com“&gt;http://www.google.com</a&gt;

注意:我想要这个,因为我不想浏览我所有的内容并用锚定标签包装它们

注意:此脚本的更新和更正版本现已在https://github.com/maranomynet/linkify (GPL/MIT执照)


嗯。。。对我来说,这似乎是jQuery的完美任务

…我突然想到了这样一件事:

//定义:Linkify插件
(函数($){
var url1=/(^ s&lt;|\s)(www\..+?\..+)(\s&gt;|$)/g,
url2=/(^ |&lt;|\s)((https?| ftp):\/\/\/| mailto:).+?)(\s |&gt;|$)/g,
linkifyThis=函数(){
var childNodes=this.childNodes,
i=childNodes.length;
而(我--)
{
var n=子节点[i];
if(n.nodeType==3){
var html=$.trim(n.nodeValue);
如果(html)
{
html=html。替换(/&amp;/g,“&amp;amp;”)
.替换(/&lt;/g,“&lt;”)
.替换(/&gt;/g,“&amp;gt;”)
.replace(url1,$1&lt;a href=“http://$2”&gt;$2&lt;/a&gt;$3')
.replace(url2,$1&lt;a href=”https://stackoverflow.com/questions/247479/$2“&gt;$2&lt;/a&gt;$5”);
$(n).after(html).remove();
}
}
else if(n.nodeType==1&amp;!/^(a |按钮|文本区域)$/i.test(n.tagName)){
链接这个。调用(n);
}
}
};
$.fn.linkify=函数(){
返回此。每个(如果是此);
};
})(jQuery);
//用法示例:
jQuery('div.textbody').linkify();

它尝试将以下所有事件转换为链接:

  • www.example.com/path
  • http://www.example.com/path
  • mailto:[email protected]
  • ftp://www.server.com/path
  • …以上所有内容都用尖括号括起来(即&lt;&gt;

享受:-)

发表评论