Non standard
Cette fonctionnalité n'est ni standard, ni en voie de standardisation. Ne l'utilisez pas pour des sites accessibles sur le Web : elle ne fonctionnera pas pour tout utilisateur. Il peut également y avoir d'importantes incompatibilités entre les implémentations et son comportement peut être modifié dans le futur.

Les propriétés non-standard $1, $2, $3, $4, $5, $6, $7, $8, $9 sont des propriétés statiques accessibles en lecture qui contiennent les différents groupes capturés par une expression rationnelle.

Syntaxe

RegExp.$1
RegExp.$2
RegExp.$3
RegExp.$4
RegExp.$5
RegExp.$6
RegExp.$7
RegExp.$8
RegExp.$9

Description

Les propriétés $1, ..., $9 sont des propriétés statiques. Ce ne sont pas des propriétés rattachées à une expression rationnelle donnée. Pour cette raison, on utilisera toujours la syntaxe RegExp.$1, ..., RegExp.$9.

Les valeurs de ces propriétés ne sont accessibles qu'en lecture et sont modifiées par le moteur à chaque fois qu'une nouvelle correspondance est trouvée.

Le nombre de groupe d'une expression rationnelle n'est pas limité. Cependant, l'objet RegExp ne contient que les neufs premiers groupes. Pour accéder à chacun des groupes liés à une expression rationnelle donnée, on pourra utiliser les indices du tableau relevant les correspondances.

Ces propriétés peuvent être utilisées pour le texte de remplacement de la méthode String.replace. Avec cette méthode, on ne préfixera pas les valeurs par RegExp (voir l'exemple ci-après), lorsque les parenthèses groupantes ne sont pas utilisées dans l'expression, $n sera interprété littérallement (avec n un entier positif).

Exemples

Utiliser $n avec String.replace

Dans le script qui suit, on utilise replace() d'une instance de String pour inverser le premier mot et le dernier et placer une virgule entre. Le script utilise $1 et $2 pour faire référence aux groupes de l'expression rationnelle :

var re = /(\w+)\s(\w+)/;
var str = 'Jean Biche';
str.replace(re, '$2, $1'); // "Biche, Jean"
RegExp.$1; // "Jean"
RegExp.$2; // "Biche"

Spécifications

Ces propriétés ne sont pas standard, elles ne font partie d'aucune spécification.

Compatibilité des navigateurs

Update compatibility data on GitHub
OrdinateurMobileServeur
ChromeEdgeFirefoxInternet ExplorerOperaSafariWebview AndroidChrome pour AndroidEdge MobileFirefox pour AndroidOpera pour AndroidSafari pour iOSSamsung InternetNode.js
Support simple
Non-standard
Chrome Support complet OuiEdge Support complet OuiFirefox Support complet 1IE Support complet OuiOpera Support complet OuiSafari Support complet OuiWebView Android Support complet OuiChrome Android Support complet OuiEdge Mobile Support complet OuiFirefox Android Support complet 4Opera Android Support complet OuiSafari iOS Support complet OuiSamsung Internet Android Support complet Ouinodejs Support complet Oui

Légende

Support complet  
Support complet
Fonctionnalité non-standard. Celle-ci peut être incorrectement supportée par les autres navigateurs.
Fonctionnalité non-standard. Celle-ci peut être incorrectement supportée par les autres navigateurs.

Voir aussi

Étiquettes et contributeurs liés au document

Contributeurs à cette page : teoli, SphinxKnight
Dernière mise à jour par : teoli,