Barre oblique inversée dans les chaînes d'expressions régulières en JavaScript
Dans les chaînes contenant des expressions régulières, il est nécessaire d'échapper (en fait, de doubler) les barres obliques inversées. Regardons un exemple. Supposons que nous ayons la chaîne suivante :
let str = 'xyz';
Supposons que nous ayons le code suivant avec une expression régulière :
let reg = /\w+/;
let res = str.match(reg);
Convertissons l'expression régulière en une chaîne. Dans ce cas, nous rencontrerons un problème avec la barre oblique inversée :
let reg = new RegExp('\w+'); // ne fonctionne pas
let res = str.match(reg);
Pour résoudre le problème, doublons la barre oblique inversée :
let reg = new RegExp('\\w+'); // fonctionne
let res = str.match(reg);
Problèmes pratiques
Convertissez l'expression régulière en chaîne :
let str = 'x1y x12y x123y';
let reg = /x\d+y/;
let res = str.replace(reg, '!');
Convertissez l'expression régulière en chaîne :
let str = 'x.y xay xby';
let reg = /x\.y/;
let res = str.replace(reg, '!');
Convertissez l'expression régulière en chaîne :
let str = 'x\\y';
let reg = /x\\y/;
let res = str.replace(reg, '!');