Я нашел интересный способ сделать это после того, как некоторое время искал более подходящее решение, которое не предполагало замену каждого символа его буквальной формой.
var x = "\\thello\\n\\tworld",
y = JSON.parse(
JSON.stringify(x).replace(/\\\\/g,'\\')
);
console.log("Original:");
console.log(x);
console.log("Literal:");
console.log(y);
Вышеуказанные выходы:
Original:
\thello\n\tworld
Literal:
hello
world
Надеюсь, это поможет!
ПРИМЕЧАНИЕ : Это может не работать со строками, которые могут содержать фигурные скобки ({
или }
), так как он может пытаться преобразовать его в литерал объекта. Вы можете избежать этого, добавив escape-символы в скобках. (например, изменение "\{"
на "\\\{"
)