백슬래시(\
또는 ₩
)가 포함된 객체 형태의 문자열을 JSON.parse
메소드의 인자로 전달했더니 오류가 발생하였다.
Uncaught SyntaxError: Unexpected token ... in JSON at position ...
백슬래시를 포함하는 정규표현식(new RegExp("\\")
)을 만들 때도 오류가 발생하였다.
Uncaught SyntaxError: Invalid regular expression ...
백슬래시는 escaped
형태로 사용하기 때문에 \\
와 같이 백슬래시가 2개 연달아 오는 형태로 자바스크립트 문자열에서 사용하였는데, JSON.parse
메소드나 정규표현식 객체
에서 사용하는 문자열 parser는 "de-escaping"할 때 2개의 문자를 제거한 형태로 문자열을 인식하므로 \\\\
와 같이 백슬래시 4개를 연달아 사용해야 한다고 한다.
const obj = '{"title": "hello \\\\ world"}';
console.log(JSON.parse(obj));
// {title: 'hello \\ world'}
const re = new RegExp("\\\\");
console.log(re);
// /\\/