J'essaie de créer une fonction autolink en javascript qui transforme automatiquement les URL en liens pendant que l'utilisateur tape (ContentEditable div).javascript url autolink mais éviter la récursivité
J'utilise cette expression rationnelle:
var text = 'Some text containing URLs';
var exp = /(\b(http):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig;
var newtext = text.replace(exp,"<a href='$1'>$1</a>");
Le code ci-dessus fonctionne très bien, mais parce que le code est appelé à chaque fois qu'un utilisateur tape, récursivité se produit:
<a href='<a href='<a href=' etc.
Comment puis-je éviter que cela passe-t-il alors que le script met toujours à jour le texte en tant qu'utilisateur?
La question est donc (merci @putvande): comment puis-je vérifier si une URL ne contient pas déjà:
<a href='...
(je ne suis pas vraiment à portée de main avec regex)
Vous devez vérifier auprès de votre Regex s'il y a déjà des balises '' dans votre code . – putvande
J'ai trouvé une solution non-regex à mon problème, avant que la fonction regex je dépouille tous les tags. Voir mon violon jsfiddle.net/gerbenzomp/UJMeR/3 Peut-être pas la solution la plus élégante, donc je suis toujours très intéressé par une solution exclusivement regex. – Gerben
Hay @Gerben avez-vous résolu cela? J'ai besoin d'une solution dans ce travail – dhee