文本对比

并排 / 内联 · 新增 / 删除 / 修改 · 大文本后台计算 · 本地完成
纯本地处理 · 文本不上传 四色笔记 ↗

左右文本

停止输入 300ms 后自动对比;单侧最多 200 万字符
左侧 / 原文0 字符 · 0 行
右侧 / 新文本0 字符 · 0 行

对比结果

新增 0 删除 0 修改 0 相同 0
输入左右文本后自动开始对比
差异结果会显示在这里

文本对比使用指南

文本对比怎么看:新增、删除、修改是怎么判定的

代码对比:缩进、换行与格式化的干扰怎么排除

末尾换行差异:␊ 与 ∅ 标记在说什么

大文本对比:200 万字符上限与 4000 行渲染

关于这个文本对比工具

把旧文本放在左侧、新文本放在右侧,停止输入约 300 毫秒后就会自动比较。只出现在右侧的行高亮为新增,只出现在左侧的行高亮为删除;位置相邻的一组删除和新增会配对成修改,并继续标出这一行里具体变了哪些字符。结果既可以左右并排查看,也可以切到内联视图按 - / + 顺序阅读。

差异算法在独立 Web Worker 中运行,新输入到来时会终止旧任务,主线程只负责分批渲染,因此大文本也不会在每次按键时卡住页面。单侧上限 200 万字符;结果超过 4000 行时只展示前 4000 行,但完整统计仍保留。每行结尾都会显式标出:有换行显示 ␊,最后一行没有结尾换行显示 ∅,所以"末尾多了一个换行"这类差异不会被悄悄忽略。浏览器会把 CRLF 与 CR 统一成 LF,因此只改换行符风格不会被判为差异。

左右都可以上传文本文件,读取与比较全部在浏览器本地完成,没有上传接口,也不会把内容写进本地存储。上传前会检查 5 MiB 大小、UTF-8 编码和 NUL 字节;复制结果采用统一差异文本,方便粘贴到工单、代码评审或聊天中。

常见问题

新增删除和修改如何显示?

只出现在右侧的行标为新增,只出现在左侧的行标为删除;位置相邻的一组删除和新增会配对为修改,并在行内进一步标出变动字符。统计区分别显示新增、删除、修改和相同行数。

能比较大文本吗?

可以。差异算法在 Web Worker 中运行,输入停止约 300 毫秒后才计算,旧任务会在新输入到来时取消;结果最多渲染前 4000 行,避免一次创建过多 DOM 卡住页面,完整统计仍会保留。

上传的文本会离开浏览器吗?

不会。文本文件由浏览器的 File API 在本地读取,比较由同源 Worker 完成,没有上传接口,也不会把左右内容写入本地存储。

行尾换行会被忽略吗?

不会。每行结尾都会显式标出:有换行显示为 ␊,最后一行没有结尾换行显示为 ∅,因此末尾多一个或少一个换行也能看出来。浏览器会把 CRLF 与 CR 统一成 LF,所以只改换行符风格不会被判为差异。

复制结果是什么格式?

复制结果采用易读的统一差异文本:相同行以空格开头,删除行以减号开头,新增行以加号开头。超过 100 万字符时复制文本会截断并明确提示,避免占满剪贴板和浏览器内存。