Ukośnik odwrotny w łańcuchach znaków wyrażeń regularnych w JavaScript

W łańcuchach znaków z wyrażeniami regularnymi należy escapować (faktycznie podwajać) ukośniki odwrotne. Spójrzmy na przykład. Załóżmy, że mamy następujący łańcuch znaków:

javascriptlet str = 'xyz';

Załóżmy, że mamy następujący kod z wyrażeniem regularnym:

javascriptlet reg = /\w+/;
let res = str.match(reg);

Spróbujmy przekształcić wyrażenie regularne w łańcuch znaków. W tym przypadku pojawi się problem z ukośnikiem odwrotnym:

javascriptlet reg = new RegExp('\w+'); // nie działa
let res = str.match(reg);

Aby rozwiązać problem, podwoimy ukośnik odwrotny:

javascriptlet reg = new RegExp('\\w+'); // działa
let res = str.match(reg);

Zadania praktyczne

Задание 1

Przekształć wyrażenie regularne w łańcuch znaków:

javascriptlet str = 'x1y x12y x123y';
let reg = /x\d+y/;
let res = str.replace(reg, '!');
Задание 2

Przekształć wyrażenie regularne w łańcuch znaków:

javascriptlet str = 'x.y xay xby';
let reg = /x\.y/;
let res = str.replace(reg, '!');
Задание 3

Przekształć wyrażenie regularne w łańcuch znaków:

javascriptlet str = 'x\\y';
let reg = /x\\y/;
let res = str.replace(reg, '!');