2013-04-10 1 views
0

J'ai besoin de lier automatiquement les URL dans une page.Lien automatique les URL dans la page en utilisant jquery

Par exemple

C'est un contenu html et contient url texte www.example.com et url lié < a href = 'www.example.com' > exemple </a >. Il pourrait suivi par http comme [http://www.example.com]

J'ai besoin que le résultat soit comme ceci:

C'est une teneur en html et contient du texte URL http://www.example.com et url http://www.example.com liés. Il pourrait être suivi par http comme http://www.example.com

J'ai utilisé la fonction ci-dessous, mais il ne fonctionne pas avec l'URL qui commence par www.

 

    jQuery.fn.autolink = function() { 
     return this.each(function() { 
      //URLs starting with http://, https://, or ftp:// 
      var re = /((http|https|ftp):\/\/[\w?=&.\/-;#~%-\{\}$!|]+(?![\w\s?&.\/;#~%"=-]*>))/g; 
      $J(this).html($J(this).html().replace(re, '$1 ')); 
     }); 
    } 

+0

Avez-vous déjà essayé quelque chose ou vous ne savez pas comment commencer? –

+0

@roXon Oui. J'ai essayé avec regex mais je n'ai pas pu obtenir des solutions correctes. J'ai mis à jour ma question avec la fonction de jquery – Santhanakumar

Répondre

0

Essayez quelque chose comme ceci. Cela va modifier l'attribut href et le html du lien hypertexte.

$("a").each(function(k,v){ 
    this.attr("href","http://"+this.attr("href")); 
    this.html("http://www."+this.html()+".com"); 
}) 
+0

pas tout à fait. OP demande comment reconnaître tout type d'URL à partir du contenu de la page et les transformer en «vrais» liens. –

+0

@Fahim J'ai besoin de trouver l'URL dans un contenu HTML.Il pourrait contenir l'URL de texte palin ainsi que des balises d'ancrage formatées.Ainsi, je dois lier l'URL du texte en clair seulement. – Santhanakumar

0

Utilisez cette fonction et passer l'URL de votre texte balise d'ancrage comme urlname et href comme linkname

function replaceURLWithHTMLLinks(urlname, linkname) { 

if (linkname && !linkname.match(/^http([s]?):\/\/.*/)) { 
    linkname = 'http://' + linkname 
} 
var exp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/i; 
return linkname.replace(exp,"<a href='$1'>"+urlname+"</a>"); 

}

Questions connexes