Экранирование символов в строке 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добавляет табуляцию.\\добавляет сам обратный слеш.- Иногда вместо экранирования проще выбрать другой тип кавычек.