diff --git a/addons/autolink/autolink.js b/addons/autolink/autolink.js index 8b9973c82..3d2e49f40 100644 --- a/addons/autolink/autolink.js +++ b/addons/autolink/autolink.js @@ -5,13 +5,13 @@ */ (function($){ var protocol_re = '(https?|ftp|news|telnet|irc|mms)://'; - var domain_re = '(?:[\\w\\-]+\\.)+(?:[a-z]+)'; + var domain_re = '(?:[^./]+\\.)+[^./]+'; var max_255_re = '(?:1[0-9]{2}|2[0-4][0-9]|25[0-5]|[1-9]?[0-9])'; var ip_re = '(?:'+max_255_re+'\\.){3}'+max_255_re; var port_re = '(?::([0-9]+))?'; - var user_re = '(?:/~[\\w-]+)?'; - var path_re = '((?:/[\\w!"$-/:-@]+)*)'; - var hash_re = '(?:#([\\w!-@]+))?'; + var user_re = '(?:/~\\w+)?'; + var path_re = '(?:/[\\w!@$%&!?="/.,:;-]+)*'; + var hash_re = '(?:#[\\w!@$%&!?="/.,:;-]*)?'; var url_regex = new RegExp('('+protocol_re+'('+domain_re+'|'+ip_re+'|localhost'+')'+port_re+user_re+path_re+hash_re+')', 'ig'); @@ -36,7 +36,7 @@ var content = textNode.nodeValue; var dummy = $(''); - content = content.replace(//g, '>'); + //content = content.replace(//g, '>'); content = content.replace(url_regex, '$1'); $(textNode).before(dummy); @@ -52,9 +52,7 @@ return; } - $(obj) - .contents() - .each(function(){ + $(obj).contents().each(function(){ var node_name = this.nodeName.toLowerCase(); if($.inArray(node_name, ['a', 'pre', 'xml', 'textarea', 'input', 'select', 'option', 'code', 'script', 'style', 'iframe', 'button', 'img', 'embed', 'object', 'ins']) != -1) return; @@ -77,4 +75,4 @@ }); xe.registerPlugin(new AutoLink()); -})(jQuery); \ No newline at end of file +})(jQuery);