JavaScript 정규식 문자열에서의 백슬래시
정규식이 포함된 문자열에서는 백슬래시를 (실제로는 두 번) 이스케이프해야 합니다. 예를 통해 살펴보겠습니다. 다음과 같은 문자열이 있다고 가정해 봅시다:
let str = 'xyz';
다음 정규 표현식을 사용하는 코드가 있다고 가정해 봅시다:
let reg = /\w+/;
let res = str.match(reg);
정규 표현식을 문자열로 변환해 보겠습니다. 이 경우 백슬래시 문제가 발생합니다:
let reg = new RegExp('\w+'); // 작동하지 않음
let res = str.match(reg);
문제를 해결하기 위해 백슬래시를 두 번 사용합니다:
let reg = new RegExp('\\w+'); // 작동함
let res = str.match(reg);
실습 문제
정규식을 문자열로 변환하세요:
let str = 'x1y x12y x123y';
let reg = /x\d+y/;
let res = str.replace(reg, '!');
정규식을 문자열로 변환하세요:
let str = 'x.y xay xby';
let reg = /x\.y/;
let res = str.replace(reg, '!');
정규식을 문자열로 변환하세요:
let str = 'x\\y';
let reg = /x\\y/;
let res = str.replace(reg, '!');