| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Regular_expressions/Backreference | [Back] [Original] |
Get to know MDN better
Cette page a t traduite partir de l'anglais par la communaut. Vous pouvez contribuer en rejoignant la communaut francophone sur MDN Web Docs.
Cette fonctionnalit est bien tablie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.
Une rtro-rfrence (backreference en anglais) fait rfrence la sous-correspondance d'un groupe capturant prcdent et correspond au mme texte que ce groupe. Pour les groupes capturant nomms, vous pouvez prfrer utiliser la syntaxe de rtro-rfrence nomme.
\N
Note :
N n'est pas un caractre littral.
NUn entier positif faisant rfrence au numro d'un groupe capturant.
Une rtro-rfrence permet de faire correspondre le mme texte que celui prcdemment reconnu par un groupe capturant. La numrotation des groupes commence 1, donc le rsultat du premier groupe capturant peut tre rfrenc avec \1, celui du deuxime avec \2, et ainsi de suite. \0 est une squence d'chappement de caractre pour le caractre nul.
Lors d'une correspondance insensible la casse, la rtro-rfrence peut correspondre un texte dont la casse diffre de celle du texte d'origine.
/(b)\1/i.test("bB"); // true
La rtro-rfrence doit faire rfrence un groupe capturant existant. Si le nombre qu'elle dfinit est suprieur au nombre total de groupes de capture, une erreur de syntaxe est leve.
/(a)\2/u; // SyntaxError: Invalid regular expression: Invalid escape
En mode non sensible Unicode, les rtro-rfrences invalides deviennent des squences d'chappement octales historiques. Il s'agit d'une syntaxe obsolte pour la compatibilit du Web, et vous ne devez pas vous y fier.
/(a)\2/.test("a\x02"); // true
Si le groupe capturant rfrenc ne correspond pas (par exemple, parce qu'il appartient une alternative qui ne correspond pas dans une alternance), ou si le groupe n'a pas encore correspondu (par exemple, parce qu'il se trouve droite de la rtro-rfrence), la rtro-rfrence russit toujours (comme si elle correspond la chane de caractres vide).
/(?:a|(b))\1c/.test("ac"); // true
/\1(a)/.test("a"); // true
La fonction suivante correspond aux motifs title='xxx' et title="xxx" dans une chane de caractres. Pour garantir que les guillemets correspondent, nous utilisons une rtro-rfrence pour faire rfrence au premier guillemet. L'accs au deuxime groupe capturant ([2]) retourne la chane de caractres entre les guillemets correspondants :
function analyserTitre(chaineDeCaracteresMeta) {
return chaineDeCaracteresMeta.match(/title=(["'])(.*?)\1/)[2];
}
analyserTitre('title="toto"'); // 'toto'
analyserTitre("title='toto' lang='en'"); // 'toto'
analyserTitre('title="Avantages des groupes capturant nomms"'); // "Avantages des groupes capturant nomms"
La fonction suivante trouve les mots rpts dans une chane de caractres (qui sont gnralement des fautes de frappe). Notez qu'elle utilise la squence d'chappement de classe de caractres \w, qui correspond uniquement aux lettres de l'alphabet anglais, mais aucune lettre accentue ni aucun autre alphabet. Pour une correspondance plus gnrique, vous pouvez diviser la chane de caractres l'aide des espaces et parcourir le tableau obtenu.
function trouverDoublons(text) {
return text.match(/\b(\w+)\s+\1\b/i)?.[1];
}
trouverDoublons("toto toto bar"); // 'toto'
trouverDoublons("toto bar toto"); // undefined
trouverDoublons("Bonjour bonjour"); // 'Bonjour'
trouverDoublons("Bonjour bonjours"); // undefined
| Spcification |
|---|
| ECMAScript 2027 LanguageSpecification # prod-DecimalEscape |
(...)(?<name>...)\k<name>Cette page a t modifie le 9 oct. 2026 par les contributeurices du MDN.
Certaines parties de ce contenu sont protges par le droit d'auteur 19982026 des contributeurs individuels de mozilla.org. Contenu disponible sous une licence Creative Commons.
| Web Proxy Viewer | New URL | Original Page |