我正在寻找用JavaScript编写的diff等效项,它仅返回/打印相关行。我不想两个文本都以高亮显示的差异彼此相邻显示,而只是想要实际的差异(加上一些缓冲行来知道差异在哪里),类似于linux diff实用程序的输出。
有人知道执行此操作的javascript函数吗?所有差异都应被识别(即使更改了空格)。谢谢。
我正在寻找用JavaScript编写的diff等效项,它仅返回/打印相关行。我不想两个文本都以高亮显示的差异彼此相邻显示,而只是想要实际的差异(加上一些缓冲行来知道差异在哪里),类似于linux diff实用程序的输出。
有人知道执行此操作的javascript函数吗?所有差异都应被识别(即使更改了空格)。谢谢。
Answers:
我完全重建了jsdifflib实用程序以提高速度。由于我的版本不需要DOM访问,因此至少要快4.5倍,并且还扩展了它以突出显示每行中的字符差异。
http://prettydiff.com/diffview.js
您可以使用在线工具直接在http://prettydiff.com/上进行测试
我对linux或一般linux的diff实用程序了解不多,但这可能就是您正在寻找jsdifflib的东西。您可以在此处找到一个实时示例,然后查看它是否适合您。
签出CodeMirror。纳夫说。
查看wikEd diff JavaScript库。还有一个在线工具。
wikEd diff具有内联文本比较功能,并带有块移动突出显示和基于字符/单词的分辨率。它针对Wikipedia源文本进行了优化,但适用于任何类型的文本或代码。库代码是完全可自定义的,具有Unicode支持,已被广泛注释,并且处于公共领域。
我知道一个老问题,但是如果您正在执行节点工作或想要与requirejs / commonjs模块兼容的东西
我真的很喜欢https://www.npmjs.com/package/diff
console.log(diff.createPatch('some file name.txt', expected, actual));