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 :
Seulement le problème c'est que si une url est déjà dans un lien il la capte quand même.
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 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 :
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> :'(
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>');
Avez-vous une idée de comment faire une expression régulière qui fasse ce que je souhaite?
Merci d'avance
Partager