Подтвердить что ты не робот

Javascript - Как показать escape-символы в строке?

Очень простой вопрос, но почему-то я не могу найти ответ нигде после 10 минут Googling. Как показать escape-символы при печати в Javascript?

Пример:

str = "Hello\nWorld";
console.log(str);

дает:

Hello
World

Когда я хочу, чтобы он дал:

Hello\nWorld
4b9b3361

Ответ 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.