我正在寻找用JavaScript编写的 diff 等价物,它只返回/打印相关的行。我不希望两个全文显示在彼此旁边并突出显示差异,但只是想要实际的差异(加上一些缓冲线来了解差异的位置),类似于linux diff实用程序的输出。
有人知道这样做的javascript函数吗?应该识别所有差异(甚至改变空白)。感谢。
答案 0 :(得分:31)
我完全重建了jsdifflib实用程序以提高速度。由于我的版本不需要DOM访问它至少快4.5倍,而且它还扩展为突出显示每行中的字符差异。
http://prettydiff.com/diffview.js
您可以直接在http://prettydiff.com/
使用在线工具对此进行测试答案 1 :(得分:29)
答案 2 :(得分:26)
答案 3 :(得分:5)
答案 4 :(得分:4)
我不太了解linux或linux中的diff实用程序,但这可能是你正在寻找的jsdifflib。你可以在那里找到一个实例,看看它是否适合你。
答案 5 :(得分:4)
查看我的最小实施:https://github.com/Slava/diff.js
答案 6 :(得分:3)
结帐CodeMirror。努夫说。
答案 7 :(得分:3)
查看wikEd diff JavaScript库。还有online tool。
wikEd diff具有内嵌文本与块移动突出显示和基于字符/单词的分辨率的比较。它针对维基百科源文本进行了优化,但适用于任何类型的文本或代码。库代码是完全可定制的,具有Unicode支持,被广泛评论,并且属于公共领域。
答案 8 :(得分:2)
我知道这个老问题,但如果你的节点工作或想要与requirejs / commonjs模块兼容的东西
我真的很喜欢https://www.npmjs.com/package/diff
console.log(diff.createPatch('some file name.txt', expected, actual));
答案 9 :(得分:1)
jsdifflib看起来很有希望 - 尝试从该页面链接的演示。