Javascript - Как показать escape-символы в строке?
Очень простой вопрос, но почему-то я не могу найти ответ нигде после 10 минут Googling. Как показать escape-символы при печати в Javascript?
Пример:
str = "Hello\nWorld";
console.log(str);
дает:
Hello
World
Когда я хочу, чтобы он дал:
Hello\nWorld
Ответы
Ответ 1
Если ваша цель состоит в том, чтобы
str = "Hello\nWorld";
и вывести то, что он содержит в строковом виде, вы можете использовать JSON.stringify
:
console.log(JSON.stringify(str)); // ""Hello\nworld""
console.log
добавляет внешние кавычки (по крайней мере, в реализации Chrome), но содержимое внутри них является строковым литералом (да, это несколько сбивает с толку).
JSON.stringify
берет то, что вы ему даете (в данном случае, строку) и возвращает строку, содержащую допустимый JSON для этого значения. Таким образом, для вышеупомянутого он возвращает открывающую кавычку ("
), слово Hello
, обратную косую черту (\
), букву n
(n
), слово World
и заключительную кавычку ("
). Перевод строки в строке экранируется в выходных данных как /
и n
потому что вы кодируете перевод строки в JSON. Другие escape-последовательности закодированы аналогичным образом.
Ответ 2
JavaScript использует\(обратную косую черту) как escape-символы для:
- \'одиночная кавычка
- \"двойная кавычка
- \backslash
- \n новая строка
- \r возврат каретки
- \t вкладка
- \b backspace
- \f form feed
- \v вертикальная вкладка (IE < 9 рассматривает '\ v' как 'v' вместо вертикальной вкладки ('\ x0B'). Если кросс-браузерная совместимость является проблемой, используйте \x0B вместо\v. )
- \0 нулевой символ (U + 0000 NULL) (только если следующий символ не является десятичной цифрой, а его восьмеричная escape-последовательность)
Обратите внимание, что escape-последовательности\v и \0 не разрешены в строках JSON.
Ответ 3
Вам нужно избежать обратного слэша, поэтому попробуйте следующее:
str = "Hello\\nWorld";
Здесь являются более экранированные символы в Javascript.