免费在线差异对比工具与文本比较
并排或行内查看两个版本的文本、Markdown 或代码之间的差异。客户端差异引擎,不向服务器传输任何数据。
原文
修改后
如何比较两段文本
粘贴两段文本。
把原文放在左侧框,修改后的版本放在右侧框。如果粘贴反了,请使用交换。
点击对比。
删除的行变红,新增的行变绿。结果上方的计数器显示新增、删除和未更改的行数。
切换视图或复制。
选择分栏视图或行内视图,或点击复制差异,以纯文本形式获取改动。点击编辑输入可修改文本后再次对比。
常见问题
关于视图、行改动、限制和复制差异的解答。
如何比较两段文本的差异?
把原文粘贴到左侧框,新版本粘贴到右侧框,然后点击对比。删除的行显示为红色,新增的行显示为绿色,计数器显示新增、删除和未更改的行数。
这里使用什么差异算法?
使用 jsdiff 库的行差异算法,它基于 Myers 算法,也是 Git 默认采用的方法。它会找出能把原文变成修改后文本所需的最小删除行和新增行集合。
可以忽略空白或大小写吗?
暂时不能。行尾空格、用制表符代替空格或大写字母,都会让该行被算作已更改。请先清理两段文本,例如在代码编辑器中去掉行尾空格,然后再对比。
为什么每一行都显示为已更改?
每一行都有某处改动,往往是你看不到的地方。用制表符重新缩进、编辑器添加的行尾空格,或按新宽度换行的文本都算作改动。压缩后的代码只有一长行,所以请先格式化两边的文本。
我只是新增了一行,为什么最后一行被标记为已更改?
如果原文最后一行后面没有换行符,在下面添加一行就会改变该行的结尾,因此它会显示为先删除再新增。在两段文本末尾都按一下回车即可避免。
它会高亮显示具体改动的字词吗?
不会。对比器以整行为单位标记,所以只改一个词,也会显示为整行被删除再整行新增。对于较长的段落,可以在两段文本中都让每个句子独占一行,这样改动的句子就会更醒目。
分栏视图和行内视图有什么区别?
分栏视图左侧显示原文,右侧显示修改后的文本,改动处用底色标出。行内视图只有一栏,每个改动块前面带有减号或加号。分栏视图的两栏不是逐行对齐的,所以差异较长时,行内视图更易阅读。
可以对比多少文本?
没有固定上限,但文本很大且差异很多时会比较慢。在同一代码的 Node 测试中,10 万行、1% 有改动的文本用时 0.3 秒,而 5,000 行且每行都不同的文本约需 3 秒。运行期间页面会等待。
可以对比文件或 PDF 吗?
只能对比粘贴的文本。这里不支持上传文件,所以请先打开每个文件,复制其中的文本再粘贴进来。图片等二进制文件无法对比;PDF 请先复制出其中的文字。
可以把差异导出为补丁吗?
不能导出真正的补丁。复制差异得到的是纯文本,改动的行前带有减号或加号,没有 @@ 头信息,所以 git apply 无法读取。空行不会包含在复制内容中,这在空格和空行有意义的场景下需要注意。
粘贴私密代码或文档安全吗?
安全。对比在你的浏览器中运行,两段文本都不会被发送。在线网站上,Google Analytics 会记录一次页面浏览、一次对比所用的时间,以及你复制或清空时的一条记录,但不会获取你粘贴的任何内容。
适用于文本和代码的差异对比功能
基于 jsdiff 库的逐行对比,提供两种视图,并统计新增、删除和未更改的行数。

并排对比文本
分栏视图左侧显示原文,右侧显示修改后的文本。删除的行在左侧以红色底色标出,新增的行在右侧以绿色标出,其余保持原样。
- 原文在左,修改后在右
- 删除显示为红色,新增显示为绿色
- 长行自动换行,无需滚动

在一栏中查看所有改动
行内视图把整个差异列在一栏中。删除的块以红色标出,新增的块以绿色标出,每个块的首行前带有减号或加号。计数器显示各类行数合计。
- 用减号和加号标记代码块
- 新增、删除和未更改行数统计
- 切换视图无需重新对比
逐行对比
差异以整行为单位,采用 Myers 方法,找出最少的删除行和新增行。只改一个词,整行也会显示为先删除、再新增。
交换、清空和再次编辑
交换会对调两个输入框,使差异方向相反。清空会同时清空两个输入框。对比之后,点击「编辑输入」即可带着你的文本返回输入框。
将差异复制为文本
复制差异会把改动放入剪贴板,改动的行前加减号或加号,其余行前加两个空格。这是纯文本,不是补丁文件。
你的文本保留在你的设备上
两段文本都在你的浏览器中比较,不会被发送。该工具记录的使用统计只有一次对比所用的时间,以及你复制或清空时的一条记录。
什么时候需要文本对比工具
三种场景,逐行差异可以回答「改了什么」。
代码审查
粘贴函数、配置文件或 SQL 查询的两个版本,在提交或送审之前查看哪些行有改动。
- 发现配置文件中的误改
- 对比同一函数的两个版本
- 对照原始代码检查粘贴的修复
文档比较
逐行对比合同、政策或翻译文件的两份草稿。让每个句子独占一行,改动就会更醒目。
- 找出两份合同草稿之间的修改
- 对比翻译文件,找出改动的键
- 将政策页面与去年的文本对照检查
日志分析
粘贴两次运行或两天的输出,找出新增的行。请先去掉时间戳,否则每一行都会显示为已更改。
- 找出两次日志运行之间的新错误
- 对比日志前先删除时间戳
- 对比配置导出内容,发现随时间产生的偏差