Текст

Whitespace & Trim Tools

Очищення тексту від зайвих пробілів: обрізання країв рядків, згортання повторюваних пробілів, видалення порожніх рядків, конвертація табуляцій ↔ пробілів.

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

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

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

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

Non-breaking space ( , код U+00A0) виглядає як звичайний пробіл, але є іншим символом для комп’ютера — рядки з ним не рівні звичайному пробілу при порівнянні.

Обрізання пробілів на краях рядка не зачіпає пробіли всередині слів чи речень — для стиснення повторюваних внутрішніх пробілів потрібна окрема операція згортання.

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

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

Чим відрізняється обрізання країв від згортання повторюваних пробілів?

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

Як обробляються порожні рядки та конвертація табуляцій/пробілів?

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

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

Ні, очищення повністю виконується у вашому браузері на JavaScript, жодні дані нікуди не передаються.

Що таке символи нульової ширини?

Це символи (zero-width space, zero-width joiner тощо), які взагалі не займають місця на екрані, але присутні в тексті як окремі символи. Вони іноді потрапляють у текст при копіюванні з деяких сайтів і можуть непомітно зламати порівняння рядків чи пошук.

Чому non-breaking space виглядає як звичайний пробіл, але поводиться інакше?

Non-breaking space ( ) візуально ідентичний звичайному пробілу, але для комп’ютера це інший символ — рядки з цими двома видами пробілу технічно не рівні при порівнянні, навіть якщо виглядають однаково на екрані.

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

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, а не в форматованому текстовому редакторі.

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

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

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

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