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 derniers 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
Fonctionnalité | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Support simple | (Oui) | (Oui) | (Oui) | (Oui) | (Oui) |
Fonctionnalité | Android | Chrome pour Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Support simple | (Oui) | (Oui) | (Oui) | (Oui) | (Oui) | (Oui) |