这个问题在这里已经有答案了:
如何用链接替换普通URL?
(25个答案)
(25个答案)
七年前关闭的
有人知道有一个脚本可以选择URL的所有文本引用,并自动用指向这些位置的锚定标记替换它们吗
例如:
http://www.google.com
会自动变成
<;a href=”http://www.google.com“>;http://www.google.com</a>;
注意:我想要这个,因为我不想浏览我所有的内容并用锚定标签包装它们
注意:此脚本的更新和更正版本现已在https://github.com/maranomynet/linkify (GPL/MIT执照)
嗯。。。对我来说,这似乎是jQuery的完美任务
…我突然想到了这样一件事:
//定义:Linkify插件
(函数($){
var url1=/(^ s<;|\s)(www\..+?\..+)(\s>;|$)/g,
url2=/(^ |<;|\s)((https?| ftp):\/\/\/| mailto:).+?)(\s |>;|$)/g,
linkifyThis=函数(){
var childNodes=this.childNodes,
i=childNodes.length;
而(我--)
{
var n=子节点[i];
if(n.nodeType==3){
var html=$.trim(n.nodeValue);
如果(html)
{
html=html。替换(/&;/g,“&;amp;”)
.替换(/<;/g,“<;”)
.替换(/>;/g,“&;gt;”)
.replace(url1,$1<;a href=“http://$2”>;$2<;/a>;$3')
.replace(url2,$1<;a href=”https://stackoverflow.com/questions/247479/$2“>;$2<;/a>;$5”);
$(n).after(html).remove();
}
}
else if(n.nodeType==1&;!/^(a |按钮|文本区域)$/i.test(n.tagName)){
链接这个。调用(n);
}
}
};
$.fn.linkify=函数(){
返回此。每个(如果是此);
};
})(jQuery);
//用法示例:
jQuery('div.textbody').linkify();
它尝试将以下所有事件转换为链接:
www.example.com/pathhttp://www.example.com/pathmailto:[email protected]ftp://www.server.com/path- …以上所有内容都用尖括号括起来(即
<;…>;)
享受:-)