320x100
320x100
const escapeStrings = ['\\`', '\\"', '\\'];

// 이스케이프된 데이터가 출력된다
// \` \" \
console.log(escapeStrings.join(' '));

// 이스케이프 없이 원하는 데이터만 출력된다
// ` " \
console.log(
  escapeStrings.join(' ').replace(/\\.{1}/g, (s) => s.replace(/\\/, ''))
);

 

가끔 데이터를 다루다보면 값이 이스케이핑 되어 원하지 않는 형태로 값이 나오는 경우가 있다

이때 단순히 replace((/\\/.g) => '')를 하면 이스케이프 문자인 \도 공백으로 바뀌기 때문에 문제가 된다

때문에 replace 내에서 콜백함수를 작성하여 한 번더 replace를 해주면 이러한 문제를 해결할 수 있다

 

 

원리

1. \뒤에 1개의 문자까지 검색 찾아낸다

2. 찾아낸 문자 \.{1}에서 가장 앞에 있는 \을 제거한다

: 이때 뒤 콜백함수 내의 replace 함수의 정규식에는 g가 없기 때문에 가장 맨 앞 값이 제거되는 것이다

300x250
728x90