我正在使用差异匹配http://neil.fraser.name/software/diff_match_patch/svn/trunk/demos/demo_diff.html
显示 2 段 html 之间的差异。问题是脚本将新行显示为¶
有没有办法设置不显示?
现在我只是删除了所有的\n
and \r
,但这听起来不太好
我正在使用差异匹配http://neil.fraser.name/software/diff_match_patch/svn/trunk/demos/demo_diff.html
显示 2 段 html 之间的差异。问题是脚本将新行显示为¶
有没有办法设置不显示?
现在我只是删除了所有的\n
and \r
,但这听起来不太好
正如您在文档中看到的,漂亮的 html 函数只是开发一些很酷的 ui 的示例。但是,如果您在函数中将 ¶ (& para;) 替换为 null,该符号将消失。
diff_match_patch.prototype.diff_prettyHtml = function(diffs) {
var html = [];
var pattern_amp = /&/g;
var pattern_lt = /</g;
var pattern_gt = />/g;
var pattern_para = /\n/g;
for (var x = 0; x < diffs.length; x++) {
var op = diffs[x][0]; // Operation (insert, delete, equal)
var data = diffs[x][1]; // Text of change.
//var text = data.replace(pattern_amp, '&').replace(pattern_lt, '<')
// .replace(pattern_gt, '>').replace(pattern_para, '¶<br>');
var text = data.replace(pattern_amp, '&').replace(pattern_lt, '<')
.replace(pattern_gt, '>').replace(pattern_para, '<br>');
switch (op) {
case DIFF_INSERT:
html[x] = '<ins style="background:#e6ffe6;">' + text + '</ins>';
break;
case DIFF_DELETE:
html[x] = '<del style="background:#ffe6e6;">' + text + '</del>';
break;
case DIFF_EQUAL:
html[x] = '<span>' + text + '</span>';
break;
}
}
return html.join('');
};
要对此进行测试,只需转到您在 Chrome 中提供的链接,然后在控制台复制粘贴上述功能,然后点击计算差异按钮。