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
'Programming > JavaScript' 카테고리의 다른 글
배열에 비동기 작업을 실시할 때 알아두면 좋은 지식 (0) | 2023.11.07 |
---|---|
메모리 관점에서의 비구조화 할당 (0) | 2023.11.07 |
if-else 보다는 if-if 코드의 가독성 (0) | 2023.08.19 |
자바스크립트 require와 import의 차이 (0) | 2023.08.11 |
JS import export 완벽 정리 (5) | 2023.08.11 |