Merge pull request #1043 from andrew-boyarshin/autolink

Fix span wrapping all the things
This commit is contained in:
Andrey Nering 2017-02-25 09:31:28 -03:00 committed by GitHub
commit d4a7040c7f
1 changed files with 12 additions and 9 deletions

View File

@ -1,7 +1,10 @@
jQuery.fn.autolink = function() { jQuery.fn.autolink = function() {
return this.find('*').contents().filter(function () { return this.nodeType === 3; }).each(function() {
var re = /((([A-Za-z]{3,9}:(?:\/\/)?)(?:[\-;:&=\+\$,\w]+@)?[A-Za-z0-9\.\-]+|(?:www\.|[\-;:&=\+\$,\w]+@)[A-Za-z0-9\.\-]+)((?:\/[\+~%\/\.\w\-]*)?\??(?:[\-\+:=&;%@\.\w]*)#?(?:[\.\!\/\\\w]*))?)/g; var re = /((([A-Za-z]{3,9}:(?:\/\/)?)(?:[\-;:&=\+\$,\w]+@)?[A-Za-z0-9\.\-]+|(?:www\.|[\-;:&=\+\$,\w]+@)[A-Za-z0-9\.\-]+)((?:\/[\+~%\/\.\w\-]*)?\??(?:[\-\+:=&;%@\.\w]*)#?(?:[\.\!\/\\\w]*))?)/g;
return this.find('*').contents()
.filter(function () { return this.nodeType === 3; })
.each(function() {
$(this).each(function() { $(this).each(function() {
if (re.test($(this).text()))
$(this).replaceWith( $(this).replaceWith(
$("<span />").html( $("<span />").html(
this.nodeValue.replace(re, "<a href='$1'>$1</a>") this.nodeValue.replace(re, "<a href='$1'>$1</a>")