Текст

Text Reverse

Розвернути текст: по символах, по словах (порядок слів) або по рядках (порядок рядків).

Інструмент розвертає текст трьома різними способами: по символах (літери йдуть у зворотному порядку), по словах (слова міняються місцями, але лишаються незмінними) чи по рядках (порядок рядків обертається).

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

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

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

Наївний розворот по кодових точках Unicode ламає складені символи (емодзі з модифікаторами, деякі мови з комбінованими діакритиками) — коректна реалізація розбиває текст на графемні кластери, а не на окремі кодові точки.

Розворот по словах не міняє порядок літер усередині кожного слова — це лише перестановка слів, а не символьний розворот.

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

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

Які існують режими розвороту?

Існує три режими: розвернути порядок символів, розвернути порядок слів, зберігаючи кожне слово цілим, або розвернути порядок рядків, зберігаючи кожен рядок цілим.

Чому розворот на рівні символів може дати нечитабельний результат?

Розворот тексту символ за символом може зламати багатобайтові послідовності Unicode, емодзі чи комбіновані символи, спричиняючи візуально зіпсоване відображення; розворот на рівні слів чи рядків не має цієї проблеми, оскільки переміщує цілі блоки тексту.

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

Ні, розворот повністю відбувається в браузері на JavaScript, без надсилання на сервер.

Що таке графемний кластер?

Це те, що людина сприймає як «один видимий символ», хоча в Unicode він іноді складається з кількох кодових точок — наприклад, емодзі родини складається з кількох окремих емодзі, з’єднаних спеціальним символом-з’єднувачем. Коректний розворот тексту має тримати такі кластери разом як одну одиницю.

Чи можна перевернути емодзі так, щоб він лишився коректним?

Так, якщо розворот розбиває рядок на графемні кластери перед зміною порядку, а не на окремі кодові точки — тоді складені емодзі (з модифікаторами тону шкіри, прапорами країн) залишаються цілими після операції.

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

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

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

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

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

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

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

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

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

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

Чому той самий символ лапок екранується по-різному в JS-рядку, JSON і shell-команді.

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

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

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

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

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

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

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

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

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

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

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

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

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

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