是否有人知道一个脚本,该脚本可以选择对URL的所有文本引用,并自动将其替换为指向这些位置的锚标记?
For example: http://www.google.com would automatically turn into <a href="http://www.google.com">http://www.google.com</a>
注意:我想要这个是因为我不想浏览所有内容,并用锚标记将它们包装起来。
对我来说,这似乎是jQuery的完美任务。
…这样的事情浮现在我脑海:
// Define: Linkify plugin (function($){ var url1 = /(^|<|\s)(www\..+?\..+?)(\s|>|$)/g, url2 = /(^|<|\s)(((https?|ftp):\/\/|mailto:).+?)(\s|>|$)/g, linkifyThis = function () { var childNodes = this.childNodes, i = childNodes.length; while(i--) { var n = childNodes[i]; if (n.nodeType == 3) { var html = $.trim(n.nodeValue); if (html) { html = html.replace(/&/g, '&') .replace(/</g, '<') .replace(/>/g, '>') .replace(url1, '$1<a href="http://$2">$2</a>$3') .replace(url2, '$1<a href="$2">$2</a>$5'); $(n).after(html).remove(); } } else if (n.nodeType == 1 && !/^(a|button|textarea)$/i.test(n.tagName)) { linkifyThis.call(n); } } }; $.fn.linkify = function () { return this.each(linkifyThis); }; })(jQuery); // Usage example: jQuery('div.textbody').linkify();