Käänteinen viiva JavaScriptin säännöllisten lausekkeiden merkkijonoissa

Säännöllisten lausekkeiden merkkijoissa tarvitsee escapeta (käytännössä kaksinkertaistaa) käänteiset viivat. Katsotaanpa esimerkkiä. Oletetaan, että meillä on seuraava merkkijono:

javascriptlet str = 'xyz';

Oletetaan, että meillä on seuraava koodi säännöllisellä lausekkeella:

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

Muutetaan säännöllinen lauseke merkkijonoksi. Tässä tapauksessa syntyy ongelma käänteisen viivan kanssa:

javascriptlet reg = new RegExp('\w+'); // ei toimi
let res = str.match(reg);

Ongelman ratkaisemiseksi kaksinkertaistetaan käänteinen viiva:

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

Käytännön tehtävät

Задание 1

Muunna säännöllinen lauseke merkkijonoksi:

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

Muunna säännöllinen lauseke merkkijonoksi:

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

Muunna säännöllinen lauseke merkkijonoksi:

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