Текст

Text Diff

Сравнение двух текстов построчно — что добавлено, удалено или изменено, с подсветкой изменений на уровне слов в изменённых строках.


                        
                    

Text Diff compares two texts line by line and shows what was added, removed, or changed, with word-level highlighting inside changed lines — much like git diff, but without a command line.

How to use it

Common uses

Things to keep in mind

By default a whitespace-only change (like indentation) still counts as a difference, since it technically changes the line's content.

The diff compares lines by position, so adding or removing a single line near the top can shift how the rest of the text lines up.

Статья об этом инструменте: Text Diff: как алгоритмы находят разницу между текстами

Часто задаваемые вопросы

Как вычисляется сравнение?

Сравнение происходит построчно: каждая строка определяется как добавленная, удалённая или изменённая, а в пределах изменённых строк подсвечиваются точные слова, которые отличаются.

Как отображаются добавления, удаления и изменения?

Добавленные и удалённые строки помечаются как таковые в результате, а изменённые строки показывают подсветку на уровне слов, чтобы сразу заметить, что изменилось, без перечитывания всей строки.

Отправляются ли мои два текста на сервер?

Нет, сравнение полностью выполняется в браузере на JavaScript — никакое содержимое никуда не отправляется.

Почему вставка одной строки показывает изменёнными все последующие?

Алгоритм не всегда безошибочно распознаёт, что это именно вставка, а не массовая замена — особенно если соседние строки похожи между собой. Хорошие diff-алгоритмы стараются минимизировать такие ложные срабатывания, ища наибольшую общую подпоследовательность, но это не всегда идеально.

Учитываются ли пробелы при сравнении?

Да, по умолчанию изменение только в пробелах (например, отступах) также помечается как отличие, поскольку технически это изменение содержимого строки.

Статьи: Текст

Case Converter: зачем нужны разные стили написания

Почему в одном проекте переменные пишут camelCase, а файлы — kebab-case, и откуда взялись эти правила.

Регулярные выражения: основной синтаксис и типичные паттерны

Как читать регулярное выражение и чем жадный поиск отличается от ленивого.

Сортировка и удаление дубликатов строк: зачем это нужно

Почему числовая сортировка «10» перед «9» — это ошибка, и как этого избежать.

String Escape: почему один и тот же текст нужно экранировать по-разному

Почему один и тот же символ кавычки экранируется по-разному в JS-строке, JSON и shell-команде.

CRLF против LF: почему символы конца строки до сих пор важны

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

Подсчёт символов и слов: почему это не всегда тривиально

Почему эмодзи или символы с диакритикой могут считаться как несколько символов сразу.

Lorem Ipsum: откуда взялся текст-заполнитель и зачем он нужен

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

Slugify: как превратить произвольный текст в URL-адрес

Как заголовок «Привет, Мир!» превращается в URL-совместимую строку вида privet-mir.

Markdown: почему простой текстовый синтаксис победил сложные редакторы

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

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

Почему две на вид одинаковые строки могут не совпадать при сравнении из-за невидимого символа.

Text Reverse: почему «перевернуть текст» сложнее, чем кажется

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

Частотный анализ текста: зачем считать повторения слов

Как частота букв в зашифрованном тексте помогает взломать простейшие шифры подстановки.