อักขระแบ็กสแลชในสตริงของเร็กเอกซ์ใน JavaScript

ในสตริงที่มีนิพจน์ทั่วไป จำเป็นต้องหลีกเลี่ยง (ในความเป็นจริงคือเพิ่มเป็นสองเท่า) อักขระแบ็กสแลช ลองดูตัวอย่างกัน สมมติว่าเรามีสตริงต่อไปนี้:

javascriptlet str = 'xyz';

สมมติว่าเรามีโค้ดต่อไปนี้ ที่มีนิพจน์ทั่วไป:

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

ลองเปลี่ยนนิพจน์ทั่วไป เป็นสตริง ในกรณีนี้เราจะพบ ปัญหากับอักขระแบ็กสแลช:

javascriptlet reg = new RegExp('\w+'); // ไม่ทำงาน
let res = str.match(reg);

เพื่อแก้ปัญหา ให้เพิ่มอักขระแบ็กสแลชเป็นสองเท่า:

javascriptlet reg = new RegExp('\\w+'); // ทำงาน
let res = str.match(reg);

โจทย์ฝึกปฏิบัติ

Задание 1

เปลี่ยนนิพจน์ทั่วไปเป็นสตริง:

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

เปลี่ยนนิพจน์ทั่วไปเป็นสตริง:

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

เปลี่ยนนิพจน์ทั่วไปเป็นสตริง:

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