文本对比 — 在线比较两段文字差异
高亮显示两段文本之间改动的文本差异对比工具
在浏览器中处理 · 不上传任何内容
在两个框中都输入文本,差异会立即显示。
功能简介
这个文本对比工具把两段文本放在一起,准确显示改了哪里。粘贴文章、合同草稿、配置文件或代码片段的旧版和新版即可。新增的内容以绿色加下划线标出,删除的内容以红色加删除线标出,结果上方还会显示新增和删除的数量。
使用方法
- 在左侧框粘贴原文,在右侧框粘贴修改后的版本,结果会随输入显示。
- 选择比较单位:按行、按词或按字符。
- 在左右对照和合并显示之间切换。按行模式下,左右对照会把被替换的行排在同一行。
- 不在意空白或大小写差异时,开启“忽略空白”或“忽略大小写”。
- 用交换按钮互换两个框的内容。
工作原理
- 比较使用开源库 jsdiff(BSD-3-Clause),它实现了 Myers 差异算法,能找出最少的编辑步骤。该库只在需要时加载,不影响其他页面。
- 默认会先把两段文本都做 Unicode NFC 规范化,这样在 Mac 上复制的韩文(分解形式 NFD)能与在 Windows 上输入的相同文本匹配。关闭该选项可以比较原始码位。
- 按词模式使用浏览器的 Intl.Segmenter 分词,所以在不用空格的中文和日文中,也只会标出改动的那个词。
- 计数使用所选单位:按行模式数行,按词模式数以空白分隔的词,按字符模式数非空白字符。
- 每一侧的上限为:按行 400,000 个字符,按词 200,000 个,按字符 40,000 个;比较超过 4 秒会被停止。
- 输入较大时,会等你停止输入片刻后再比较,以保持页面流畅。
- 如果两段文本相同,会提示两者完全相同。
示例
| 原文 | 修改后 | 模式 | 结果 |
|---|---|---|---|
| a / b / c | a / B / c / d | 按行 | 行:+2 −1 |
| the quick brown fox | the slow brown dog | 按词 | 词:+2 −2 |
| 今天天气很好 | 今天天气不好 | 按字符 | 字符:+1 −1 |
| Hello | hello | 按行,忽略大小写 | 完全相同 |
常见问题
什么时候按行、按词或按字符比较?
按行适合代码和配置文件这类以行为单位的内容;按词适合修改过的文章;按字符最适合找出一个字的错别字。中文文章通常用按词或按字符比较。
有大小限制吗?
按行模式下每一侧最多 400,000 个字符,按词模式 200,000 个,按字符模式 40,000 个。字符级对比在大文本上可能耗时很长,所以上限更低;任何超过 4 秒的比较都会停止并显示提示。
“忽略空白”有什么作用?
在按行模式下,它会忽略每行开头和结尾空白的差异。按词模式本身就不在意单词之间空格数量的差异。
我的文本会被上传吗?
不会。比较在浏览器中进行,不会保存或发送任何内容。