文本差异对比
逐行比较两个纯文本版本。换行符会统一处理,但空格、大小写和末尾换行仍有区别。结果不判断含义或正确性。
如何比较文本
- 将较早版本填入原始文本,较新版本填入更新后的文本。两个输入框都可以为空。示例只填入内容,不会自动比较。
- 点击“比较”。每侧最多 100,000 个 UTF-16 单元、2,000 条行记录,每行内容最多 10,000 个单元。
- 查看状态、计数和带行号的结果。打开空白及控制字符标记,用上一页和下一页查看所有行。
比较的具体规则
CRLF 和单独的 CR 会转为 LF。浏览器文本框本身也会统一换行符,因此匹配不代表源文件字节相同。
行记录包含已有的末尾 LF。空文本有零条记录,一个 LF 是一条空记录;屏幕自动换行不会增加记录。
空格、制表符、不间断空格、大小写和不同的 Unicode 组合均有区别。限制按 UTF-16 单元计算,不按可见字符计算。
完整结果使用最少的整行插入和删除。重复行可能有多种同样短的对应方式;它不判断含义或文本是否移动。
行和末尾换行示例
示例中 red 保持不变,blue 被删除,green 被添加:各一条。
没有末尾换行的 a 与后接 LF 的 a 是两条不同记录,因此各有一条删除和新增,而不是多出空行。
空文本与一个 LF 相比会新增一条空行;两个空文本比较后匹配,所有计数均为零。
限制与未完成的比较
输入上限包含边界值,不会截断文本。差异较大的文本即使在范围内,也可能达到单独的修改量或时间上限。
取消、工作线程不可用或出错时保留文本,但不提供结果。可以缩短文本后重试;浏览器调度无法保证完成时间。
这里只接收纯文本,不读取文件,也不忽略空格或大小写、不核实事实、不应用修改。
本地处理
比较在浏览器工作线程中本地运行。工具不会上传或保存文本,不会将其放入网址或日志;普通网站请求仍会发生。
文本比较常见问题
参考资料
比较方法和浏览器行为的参考资料。
- github.comjsdiff 行比较介绍此处使用的行比较算法和选项。
- html.spec.whatwg.orgHTML textarea 规范说明文本框中的换行符处理。
- developer.mozilla.org终止 Worker说明如何停止浏览器工作线程。
- jsdiff BSD-3-Clause 许可证固定版本依赖的完整许可声明。
查阅于 2026 年 11 月 5 日;这不是专业、安全或安全性认证。
