toolgarden.xyz
EN

文本对比

用开源 diff 算法对比两段文本,同时按行和按词高亮显示新增、删除和修改的内容,浏览器本地处理,不上传文本。

左侧文本(原始)

0 行

右侧文本(新版)

0 行

原始文本
新版文本
输入两段文本后会显示差异

工具说明

文本对比会找出两个版本之间新增、删除和未变化的内容,适合检查文案、配置、日志和文档修订。差异结果取决于比较粒度与空白处理,按行比较便于代码和段落,按词或字符比较更适合句内修改。

工具显示的是文本表面变化,不理解条款、数字或代码的业务含义。重新换行、缩进或行尾格式也可能产生大量差异,比较前应决定空白是否重要,并保证两个版本使用相同字符编码。

使用步骤

  1. 放入基准和新版本

    明确左侧或第一个文本是旧版本,避免反向解读新增与删除。

  2. 选择合适视图

    先看整体变化,再聚焦到有差异的行和词。

  3. 人工判断影响

    检查数字、否定词、标点和结构变化,确认是否符合预期。

输入与输出示例

行级定位加词级高亮。第二行只改了一个数字,但整行会先被标为变化。

两段文本
// 左
服务端口 8080
超时 30 秒

// 右
服务端口 3000
超时 30 秒
差异结果
~ 第 1 行:服务端口 [8080 → 3000]
  第 2 行:无变化

支持范围与限制

比较粒度
先按行定位差异,再在变化的行内按词高亮,两级同时展示
算法
基于开源 diff 库的最长公共子序列,与 git diff 的思路一致
能识别
新增行、删除行、行内词级修改
无法识别
整段移动会被标成一处删除加一处新增,而不是「位置改变」
不理解语义
同义改写、语序调整会显示成大段差异;数字或单位的关键改动可能只是一个字符
JSON 的更好选择
两边都是 JSON 时用 JSON 对比,它按字段比较,不受格式化差异干扰

典型使用场景

  • 审阅文案修订

    确认修改者只调整了约定段落,没有遗漏或意外删除。

  • 排查配置差异

    对比两个环境的文本配置或日志片段,快速定位变化位置。

  • 核对合同定稿与上一版

    逐词高亮能暴露金额、日期和责任条款里被改动的单个字符,这类改动在通读时最容易被忽略。

使用前需要知道的事

  • 差异相同不证明两个系统行为相同,文本还可能依赖外部环境。
  • 换行符 LF 与 CRLF、尾随空格和 Unicode 规范化会制造非视觉差异。
  • 敏感合同和密钥内容应遵守组织的复制与处理规定。

相关概念

diff
描述两个文本序列如何通过增加和删除相互转换的结果。
whitespace
空格、制表符和换行等不直接显示为字形的字符。

常见问题

文本对比会上传内容吗?
不会。两段文本的对比会在浏览器本地完成,输入内容不会发送到服务器。
文本对比使用什么算法?
工具基于开源 jsdiff 算法进行逐行对比,并在修改行内继续高亮词级差异。
整段搬移位置为什么显示成删除加新增?
算法基于最长公共子序列,它只判断某一行是否存在于两边,不追踪移动。整段位置变化在两边都找不到对应位置,因此表现为一处删除加一处新增。git diff 的行为也是一样的。
为什么改了一个词,整行都标成变化?
行级比较会先标出变化的行,行内再做词级高亮。看行级标记会觉得整行都变了,看行内高亮才能定位到具体那个词:两级信息是同时给出的。