좋은 소리, 예쁜 HTML 기능이 멋진 UI를 개발하는 단지 샘플입니다. 그러나 함수에서 null이있는 ¶ (& para;)을 바꾸면 기호가 사라집니다.
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('');
};
는 컴퓨팅은 diff 버튼을 눌렀을 전에 기능 위에 붙여 Chrome에서 콘솔 사본에 제공된 링크로 이동이를 테스트합니다.
Diff Match 패치를 사용하여 작업 한 이래로 오랜 시간이 걸렸습니다. 구현시 매우 견고하기 때문에 단락 기호가 문제가된다는 것을 기억하지 못합니다. 너 뭐 해봤 니? – Hemlock