Bonjour,

Débutant en matière de REGEX, je souhaiterais comprendre les mécanismes de la REGEX suivante (qui a pour effet de mettre en surbrillance les caractères recherchés dans une chaîne) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
var string ="écouteur";
 
string = string.replace(new RegExp("(?![^&;]+;)(?!<[^<>]*)(écoute)(?![^<>]*>)(?![^&;]+;)", "gi"),
"<span style='color:#8F5935;font-weight:bold;'>$1</span>");
Avec ce code, les caractères “écoute” de la chaîne “écouteur” sont mis en surbrillance.
J’ai du mal à comprendre la syntaxe de la REGEX (en mode objet si j’ai bien compris). Cette syntaxe avec le mot recherché entre parenthèses, encadré par des patterns elles-mêmes entre parenthèses, est-elle habituelle ? Que fait exactement cette REGEX ? Que donnerait-elle en mode littéral ? Je souhaite y voir clair car mon objectif est de modifier la REGEX pour la rendre insensible aux accents (pour le moment , si je recherche le mot “ecouteur”, la chaîne string n’est pas surlignée à cause de l’accent sur le e ). D’ailleurs, si vous avez une piste sur le sujet, je suis preneur. Merci d’avance de votre aide.