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 :
javascriptlet str = 'xyz';
Supposons que nous ayons le code suivant avec une expression régulière :
javascriptlet 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 :
javascriptlet reg = new RegExp('\w+'); // ne fonctionne pas
let res = str.match(reg);
Pour résoudre le problème, doublons la barre oblique inversée :
javascriptlet reg = new RegExp('\\w+'); // fonctionne
let res = str.match(reg);
Problèmes pratiques
Задание 1
Convertissez l'expression régulière en chaîne :
javascriptlet str = 'x1y x12y x123y';
let reg = /x\d+y/;
let res = str.replace(reg, '!');
Задание 2
Convertissez l'expression régulière en chaîne :
javascriptlet str = 'x.y xay xby';
let reg = /x\.y/;
let res = str.replace(reg, '!');
Задание 3
Convertissez l'expression régulière en chaîne :
javascriptlet str = 'x\\y';
let reg = /x\\y/;
let res = str.replace(reg, '!');