JavaScript 代码:比较文本差异并高亮显示
下面是使用 JavaScript 代码比较两个文本框的文字内容,找出最接近的一段文字,并将差异部分用不同颜色高亮显示的示例代码:
// 获取文本框元素
var txA = document.getElementById('TX1');
var txB = document.getElementById('TX2');
var txC = document.getElementById('TX3');
// 获取原始文本和参考文本的内容
var textA = txA.value;
var textB = txB.value;
// 查找最接近的一段文字
var diff = JsDiff.diffChars(textB, textA);
var closest = diff.reduce(function(prev, current) {
if (current.count > prev.count) {
return current;
} else {
return prev;
}
});
// 将差异内容展示在TX3中
var diffContent = '';
diff.forEach(function(part) {
var color = '';
if (part.added) {
color = 'blue';
} else if (part.removed) {
color = 'red';
} else {
color = 'purple';
}
diffContent += `<span style="color: ${color}">${part.value}</span>`;
});
txC.innerHTML = diffContent;
代码说明:
- 获取三个文本框元素,分别对应原始文本 (TX1)、参考文本 (TX2) 和差异显示区域 (TX3)。
- 获取文本框的内容。
- 使用 JsDiff 库比较文本差异,并找出最接近的一段文字。
- 遍历差异结果,将每个部分用不同的颜色高亮显示,并拼接成最终的差异内容。
- 将差异内容显示在 TX3 文本框中。
注意:
- 此代码假设 HTML 页面中已创建了三个文本框,并设置了相应的 ID。
- 需要引入 JsDiff 库才能使用其提供的文本比较功能。
- 使用
span标签和style属性来实现差异内容的颜色高亮显示。
原文地址: https://www.cveoy.top/t/topic/qqP8 著作权归作者所有。请勿转载和采集!