Bonjour,

Voilà j'aimerais (en JavaScript) remplacer toutes les urls par des liens <a href=...>...</a>

Donc j'ai une epxression régulière pour capter les liens :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
var replacePattern1 = /(\b(https?):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/gim;
var replacedText = inputText.replace(replacePattern1, '<a href="$1" target="_blank">$1</a>');
Seulement le problème c'est que si une url est déjà dans un lien il la capte quand même.

Du coup j'aimerais changer l'expression régulière pour lui dire de ne pas traiter les liens s'il ya un '>' devant le http (donc quand l'url est déjà dans une balise <a href=...>...</a>).

J'ai essayé ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
var replacePattern1 = /^[^>](\b(https?):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/gim;
var replacedText = inputText.replace(replacePattern1, '<a href="$1" target="_blank">$1</a>');
Du coup il ne traite plus les url qui sont déjà dans un lien <a> mais par contre il ne traite plus non plus les url qui ne sont pas sous forme de lien <a> :'(

Avez-vous une idée de comment faire une expression régulière qui fasse ce que je souhaite?

Merci d'avance