自定义文本比较工具
方向: 1.比较两段文本的长度,不相同肯定不相等
2.如果长度不同,就以短的文本的长度为限制值,比较从0到限制值中的,那一段不相等
3.比较出那一段不相等,在把这一段逐个字符进行比较,找出从哪个字符不相同,返回索引
页面实现:
1.定义textarea 用来输入文本
2.比较如果有不同,则将textarea 隐藏,用相同的长宽的div 展示,并对不同的地方进行标红处理,并对过长的字符进行换行处理,并对div 添加滚动条
2.如果不同则无需处理,
3.提供清空按钮,将div 隐藏,显示textarea ,并清除输入数据
javascript 实现
/**
* compare demo
* 返回指定索引
* @author zcm
var t1 = "sagjiojiogrewa";
var t2 = "jiojigoji";
console.log(testCompare(t1,t2));
*/
function testCompare(t1,t2){
var text1 = t1;
var text2 = t2;
/**if(text1.length != text2.length){
return text1.length > text2.length ? text2.length : text1.length;//text1 长度不同
}*/
var tarr = text1.split(" ");
var tarr2 = text2.split(" ");
var length = tarr.length > tarr2.length ? tarr2.length:tarr.length;
var arrSize = 0;
for(var i = 0;i < length ;i++){ //根据长度短的来比较
/** if(tarr[i].length != tarr2[i].length) return tarr[i].length; */
if(tarr[i] != tarr2[i]){
return arrSize + testCompare2(tarr[i],tarr2[i]);//在小数组中的位置
}
arrSize += tarr[i].length;
}
}
function testCompare2(t1,t2){
var tarr = t1.split("");
var tarr2 = t2.split("");
var length = tarr.length > tarr2.length ? tarr2.length:tarr.length;
/**if(t1.length != t2.length){
return length;//text1 长度不同
}*/
for(var i = 0;i < length ;i++){ //根据长度短的来比较
if(tarr[i] != tarr2[i]){
return i;
}
}
}
页面显示html代码就不展示了,处理的比较丑