Экранирование символов в строке JavaScript

Иногда внутри строки нужно написать символ, который JavaScript может понять как часть кода. Например, кавычку внутри строки, которая уже написана в таких же кавычках.

let phrase = 'Он сказал: \'Привет\'';

console.log(phrase);

Результат:

Он сказал: 'Привет'

Обратный слеш перед кавычкой показывает, что эта кавычка является частью строки, а не концом строки.

Что такое экранирование

Экранирование - это запись специального символа через обратный слеш \.

let text = 'Это строка с \'кавычками\' внутри';

console.log(text);

Результат:

Это строка с 'кавычками' внутри

Сам обратный слеш в результате не выводится. Он только меняет смысл следующего символа.

Кавычки внутри строки

Если строка написана в одинарных кавычках, одинарную кавычку внутри строки нужно экранировать.

let message = 'It\'s ok';

console.log(message);

Результат:

It's ok

То же самое с двойными кавычками.

let message = "Он сказал: \"Привет\"";

console.log(message);

Результат:

Он сказал: "Привет"

Перенос строки

С помощью \n можно добавить перенос строки.

let text = 'Первая строка\nВторая строка';

console.log(text);

Результат:

Первая строка
Вторая строка

\n не выводится как обычные символы. Вместо этого строка переносится на новую строку.

Табуляция

\t добавляет табуляцию. Проще говоря, это отступ внутри строки.

let text = 'Имя:\tАнна';

console.log(text);

Результат:

Имя:	Анна

В обычном коде \t используют не так часто, но знать такую запись полезно.

Обратный слеш

Если нужно вывести сам обратный слеш, его тоже нужно экранировать.

let path = 'C:\\Users\\Admin';

console.log(path);

Результат:

C:\Users\Admin

Первый слеш экранирует второй, поэтому в результате остается один обратный слеш.

Когда можно не экранировать

Иногда проще выбрать другие кавычки для строки.

let phrase = "It's ok";

console.log(phrase);

Результат:

It's ok

Строка написана в двойных кавычках, поэтому одинарная кавычка внутри не мешает.

И наоборот:

let phrase = 'Он сказал: "Привет"';

console.log(phrase);

Результат:

Он сказал: "Привет"

Итого

Экранирование помогает записывать внутри строки символы, которые JavaScript может понять как часть синтаксиса.

  • \’ добавляет одинарную кавычку внутри строки.
  • \” добавляет двойную кавычку внутри строки.
  • \n добавляет перенос строки.
  • \t добавляет табуляцию.
  • \\ добавляет сам обратный слеш.
  • Иногда вместо экранирования проще выбрать другой тип кавычек.