Merci, cela a été très utile. Je voulais aussi quelque chose qui permettrait de relier les choses qui ressemblait à une URL, comme une exigence de base, il avait un lien de quelque chose comme www.yahoo.com même si le protocole http:// préfixe n'était pas présent. Donc en gros, si le "www" est présent, il va le lier et d'assumer c'est http://. Je voulais aussi e-mails à tourner dans les liens mailto:. EXEMPLE: www.yahoo.com serait converti à www.yahoo.com
Voici le code que j'ai fini avec (combinaison de code à partir de cette page, et d'autres trucs que j'ai trouvé en ligne, et d'autres trucs que j'ai fait sur mon propre):
function Linkify(inputText) {
//URLs starting with http://, https://, or ftp://
var replacePattern1 = /(\b(https?|ftp):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/gim;
var replacedText = inputText.replace(replacePattern1, '<a href="$1" target="_blank">$1</a>');
//URLs starting with www. (without // before it, or it'd re-link the ones done above)
var replacePattern2 = /(^|[^\/])(www\.[\S]+(\b|$))/gim;
var replacedText = replacedText.replace(replacePattern2, '$1<a href="http://$2" target="_blank">$2</a>');
//Change email addresses to mailto:: links
var replacePattern3 = /(\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,6})/gim;
var replacedText = replacedText.replace(replacePattern3, '<a href="mailto:$1">$1</a>');
return replacedText
}
Dans le 2ème remplacer, le (^|[^/]) est un remplacement www.whatever.com si c'est pas déjà le préfixe // -- afin d'éviter une double liaison si une URL a déjà été liée à la première remplacer. Aussi, il est possible que www.whatever.com peut-être au début de la chaîne, qui est la première condition "ou" dans la partie de l'expression régulière.
Ceci pourrait être intégré comme un plugin jQuery que Jesse P illustré ci-dessus-mais j'ai souhaité spécifiquement une fonction régulière qui n'agissait pas sur un élément du DOM, parce que je prends tout le texte que j'ai et puis l'ajouter au DOM, et je veux que le texte soit "linkified" avant que je ajouter, donc j'ai passer le texte par le biais de cette fonction. Fonctionne très bien.