Текст

String Escape

Екранувати текст у рядковий літерал (лапки, backslash, керівні символи) для вставки в код, або розекранувати назад.

Стиль лапок

                    

Щоб вставити текст із лапками, переносами рядків чи backslash усередину рядкового літерала в коді, ці символи потрібно екранувати — інакше вони передчасно завершать рядок або будуть витлумачені неправильно. Інструмент екранує й розекранує текст під конкретний синтаксис.

Як користуватися

Типові сценарії

Що варто памʼятати

Той самий символ (наприклад, подвійна лапка) екранується по-різному залежно від контексту — JS-рядок, JSON і shell мають власний синтаксис і власний набір спецсимволів.

Подвійне екранування (екранування вже екранованого тексту) — поширена помилка при вставці даних крізь кілька шарів (наприклад, JSON усередині shell-команди).

Стаття про цей інструмент: String Escape: чому той самий текст треба екранувати по-різному

Часті запитання

Що саме робить екранування?

Воно перетворює лапки, зворотні слеші та керуючі символи (як-от розриви рядків чи табуляції) на дійсні екрановані послідовності в межах рядкового літералу, щоб текст можна було вставити як є у вихідний код.

Для чого потрібні стиль лапок та опція unicode?

Стиль лапок (подвійні, одинарні чи зворотні) визначає, який символ екранується, щоб не зламати рядок, а опція \uXXXX перетворює не-ASCII символи на екрановані unicode-послідовності замість того, щоб залишити їх як є.

Чи надсилається вставлений текст на сервер?

Ні, екранування й його скасування повністю виконуються в браузері через JavaScript, жодні дані не надсилаються онлайн.

Що робити, якщо текст проходить через кілька контекстів підряд?

Екранувати потрібно в правильному порядку: спершу для внутрішнього контексту (наприклад, JSON), потім для зовнішнього (наприклад, shell-команда, у яку вставляється цей JSON). Переплутаний порядок чи пропущений рівень — типова причина, чому «правильно екранований» рядок все одно ламається на практиці.

Чому та сама лапка екранується по-різному в різних контекстах?

Кожен контекст (JS-рядок, JSON, shell, regex) має власний синтаксис зі своїм набором спецсимволів і власним способом їх екранування — тому правильне екранування залежить від того, куди саме вставляється текст, а не від самого тексту.

Статті: Текст

Case Converter: навіщо потрібні різні стилі написання

Чому в одному проєкті змінні пишуть camelCase, а файли — kebab-case, і звідки взялись ці правила.

Text Diff: як алгоритми знаходять різницю між текстами

Як diff-алгоритм знаходить мінімальний набір змін між двома версіями тексту.

Регулярні вирази: основний синтаксис і типові патерни

Як читати регулярний вираз і чим жадібний пошук відрізняється від лінивого.

Сортування та видалення дублікатів рядків: навіщо це потрібно

Чому числове сортування «10» перед «9» — це помилка, і як цього уникнути.

CRLF проти LF: чому символи кінця рядка досі мають значення

Чому файл, написаний у Windows, може показувати «змінений увесь файл» у git на Linux.

Підрахунок символів і слів: чому це не завжди тривіально

Чому емодзі чи символи з діакритикою можуть рахуватись як кілька символів одразу.

Lorem Ipsum: звідки взявся текст-заповнювач і навіщо він потрібен

Чому дизайнери навмисно використовують «безглуздий» текст замість реального контенту в макетах.

Slugify: як перетворити довільний текст на URL-адресу

Як заголовок «Привіт, Світ!» перетворюється на URL-сумісний рядок вигляду pryvit-svit.

Markdown: чому простий текстовий синтаксис переміг складні редактори

Чому розробники обирають писати документацію в Markdown, а не в форматованому текстовому редакторі.

Пробіли та невидимі символи: прихована причина дивних багів

Чому два на вигляд однакові рядки можуть не збігатися при порівнянні через невидимий символ.

Text Reverse: чому «перевернути текст» складніше, ніж здається

Чому наївний реверс рядка може перетворити емодзі на непридатні для показу байти.

Частотний аналіз тексту: навіщо рахувати повторення слів

Як частота літер у зашифрованому тексті допомагає зламати найпростіші шифри підстановки.