Poches dans la méthode replace des expressions régulières JavaScript
Lorsqu'on utilise la méthode replace, si
nous mettons quelque chose dans une poche (groupe de capture) dans l'expression régulière,
dans la chaîne de remplacement nous pouvons insérer le contenu
de cette poche en écrivant le signe dollar $
suivi du numéro de la poche. Par exemple, $1 - la première
poche, $2 - la deuxième poche et ainsi de suite.
Voyons à quoi cela sert et comment l'utiliser à travers des exemples.
Exemple
Trouvons tous les nombres et remplaçons-les par ces mêmes nombres, mais entre parenthèses. Pour cela, tous les nombres trouvés seront remplacés par eux-mêmes, mais entre parenthèses :
let str = '1 23 456 xax';
let res = str.replace(/(\d+)/g, '($1)');
En conséquence, la variable contiendra ce qui suit :
'(1) (23) (456) xax'
Exemple
Trouvons toutes les chaînes représentant
des nombres entourés de 'x' et remplaçons ces
nombres par eux-mêmes, mais entourés de
signes '!' :
let str = 'x1x x23x x456x xax';
let res = str.replace(/x(\d+)x/g, '!$1!');
En conséquence, la variable contiendra ce qui suit :
'!1! !23! !456! xax'
Exemple
Résolvons le problème suivant : il y a des chaînes
de la forme 'aaa@bbb' - des lettres, puis un arobase,
puis des lettres. Nous devons inverser les lettres
avant le @ et après.
let str = 'aaa@bbb ccc@ddd';
let res = str.replace(/([a-z]+)@([a-z]+)/g, '$2@$1');
En conséquence, la variable contiendra ce qui suit :
'bbb@aaa ddd@ccc'
Problèmes pratiques
Soit une chaîne :
let str = '12 34 56 78';
Inversez les chiffres dans tous les nombres à deux chiffres.
Soit une chaîne avec une date :
let str = '31.12.2025';
Convertissez cette date en '2025.12.31'.