——我们要坚持开放、绿色、廉洁理念,不搞封闭排他的小圈子,把绿色呃呃呃作为——我们要坚持开放、绿色、廉洁理念,项目压缩文件夹/工单管理,不搞封闭排他的小圈子,把绿_js 文本对比不同的地方红色标记">搜索查看编辑修改首页UNITYNODEJSPYTHONAIGITPHPGOCEF3JAVAHTMLCSS搜索笔触狂放9 这个屌丝很懒,什么也没留下! 关注作者热门标签jqueryHTMLCSSPHPASPPYTHONGOAICC++C#PHOTOSHOPUNITYiOSandroidvuexml爬虫SEOLINUXWINDOWSJAVAMFCCEF3CADNODEJSGITPyppeteerarticle热门文章1YOLOX——Win10下训练自定义VOC数据集_yolox 训练voc数据集2Oracle数据库中触发器包含dblink_blob dblink 触发3YoungTalk-STM32入门100步-回顾总结与展望(98-100)_stm32入门100步 pdf4解决gitlab启动失败的方法_gitlab镜像启动失败5Java与Gradle 的版本兼容性矩阵验证_java1.8对应的gradle版本是什么6从双非小白成为阿里Java开发工程师!我经历了什么?看完我的成功秘籍你就清楚了_阿里巴巴 研发工程师 电脑配置7让人费解的Error:No such property: GradleVersion for class: JetGradlePlugin8华为OD机试-执行时长(Java/Python/C++)_华为机试gpu运行时间9Docker和Git命令_dockers镜像和git10分布式之CAP原则详解_分布式cap当前位置: article > 正文 文本对比标红_js 文本对比不同的地方红色标记 作者:笔触狂放9 | 2024-07-07 22:24:51 赞踩js 文本对比不同的地方红色标记 html <textarea rows="2" cols="20" type="text" id="inpLeft" name="inpLeft">——我们要坚持开放、绿色、廉洁理念,不搞封闭排他的小圈子,把绿色呃呃呃作为</textarea> <textarea rows="2" cols="20" type="text" id="inpRight" name="inpRight">——我们要坚持开放、绿色、廉洁理念,项目压缩文件夹/工单管理,不搞封闭排他的小圈子,把绿色的的的作为</textarea> <input id="inpStartCompare" type="button" value="对比" ng-click="startCompare();" /> <div id="show1" ></div> <div id="show2"></div> 12345 js $scope. startCompare=function() { var a = $.trim($("#inpLeft").val()); var b = $.trim($("#inpRight").val()); var result = getHighLightDifferent(a, b); $("#show1").html(result[0]); $("#show2").html(result[1]); return false; } function StringBuffer() { this.__strings__ = []; }; StringBuffer.prototype.append = function (str) { this.__strings__.push(str); return this; }; //格式化字符串 StringBuffer.prototype.appendFormat = function (str) { for (var i = 1; i < arguments.length; i++) { var parent = "\\{" + (i - 1) + "\\}"; var reg = new RegExp(parent, "g") str = str.replace(reg, arguments[i]); } this.__strings__.push(str); return this; } StringBuffer.prototype.toString = function () { return this.__strings__.join(''); }; StringBuffer.prototype.clear = function () { this.__strings__ = []; } StringBuffer.prototype.size = function () { return this.__strings__.length; } var flag = 1; function getHighLightDifferent(a, b) { var temp = getDiffArray(a, b);//找出a和b不一样的地方 var a1 = getHighLight(a, temp[0]);//将a不一样的地方高亮 var a2 = getHighLight(b, temp[1]);//将b不一样的地方高亮 return new Array(a1,a2); } //对比出来的不一样的地方高亮 function getHighLight(source, temp) { var result = new StringBuffer(); var sourceChars = source.split(""); var tempChars = temp.split(""); var flag = false; for (var i = 0; i < sourceChars.length; i++) { if (tempChars[i] != ' ') { if (i == 0) { result.append("<span style='color:red'>"); result.append(sourceChars[i]); } else if (flag) { result.append(sourceChars[i]); } else { result.append("<span style='color:red'>"); result.append(sourceChars[i]); } flag = true; if (i == sourceChars.length - 1) { result.append("</span>"); } } else if (flag == true) { result.append("</span>"); result.append(sourceChars[i]); flag = false; } else { result.append(sourceChars[i]); } } return result.toString(); } //找出a和b不一样的地方 function getDiffArray(a, b) { var result = new Array(); //选取长度较小的字符串用来穷举子串 if (a.length < b.length) { var start = 0; var end = a.length; result = getDiff(a, b, start, end); } else { var start = 0; var end = b.length; result = getDiff(b, a, 0, b.length); result = new Array(result[1], result[0]); } return result; } //将a的指定部分与b进行比较生成比对结果 function getDiff(a, b, start, end) { var result = new Array(a, b); var len = result[0].length; while (len > 0) { for (var i = start; i < end - len + 1; i++) { var sub = result[0].substring(i, i + len); var idx = -1; if ((idx = result[1].indexOf(sub)) != -1) { result[0] = setEmpty(result[0], i, i + len); result[1] = setEmpty(result[1], idx, idx + len); if (i > 0) { result = getDiff(result[0], result[1], start, i); //递归获取空白区域左边差异 } if (i + len < end) { result = getDiff(result[0], result[1], i + len, end);//递归获取空白区域右边差异 } len = 0;//退出while循环 break; } } len = parseInt(len / 2); } return result; } //将字符串s指定的区域设置成空格 function setEmpty(s, start, end) { var array = s.split(""); for (var i = start; i < end; i++) { array[i] = ' '; } return array.join(""); } 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 ## 效果图  123456 声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/796935推荐阅读articlehbuilderx关联git提交代码,下载tortoisegit_hbuilder绑定代码...安装tortoisegittortoisegit官网地址选择对应的安装程序和语言包,进行安装,一般都直接next就行。安... 赞踩article九联UNT413A_S905L3B_默认打开ADB_完美线刷固件包【可救砖】_s905l3b刷机包...UNT413A_S905L3B_AI语音_默认打开ADB_完美线刷固件包【可救砖】_基于原机制作_端口5555固件特点:... 赞踩articleGitHub的账号注册教程_github注册...完成这个过程,就可以获得一个免费的、可扩展的代码托管平台,可以与其他人共享代码、协作开发和管理版本控制。输入验证码后自动... 赞踩article好用的视频提取工具,轻松2步下载提取视频号视频下载_提取下载小助手...最近比较忙都没有时间更内容,罪过罪过!很多人就想知道视频号视频可以用什么工具进行下载就这么难吗?面对的目前用户对视频号理... 赞踩article免费的数据库开发工具,涵盖了SQL编辑、数据库管理以及建模_sql免费管理工具...请注意,上述信息可能会随时间变化,建议直接访问相关工具的官方网站以获取最新的版本信息、功能详情和许可条款。在选择工具时,... 赞踩articleGit Clone项目的时候报错 OpenSSL SSL_read: SSL_ERROR_SYSCA...问题背景:之前在github上拉去代码都是正常的 这一次clone的时候却出错了 在网上百度了一下 找到这个解决方案 随... 赞踩articleJVM专题之垃圾收集器...非标准参数,也就是在JDK各个版本中可能会变动```-Xint 解释执行-Xcomp 第一次使用就编译成本地代码-Xm... 赞踩article【FPGA入门】简单计时器实现_fpga简易计时器...有关Quartusii的。_fpga简易计时器fpga简易计时器 一、准备工作: 有关Q... 赞踩articleVue3中使用Vform3(自定义表单工具)...Vform的简单介绍和使用_vformvform 一、关... 赞踩articleAndroid Studio-App门户页面设计与开发_基于android studio的app开发...设计一个类微信界面,主要分为上中下三个部分,通过下方按钮实现“聊天”、“联系人”、“发现”以及“设置”这四个页面的切换,... 赞踩article客户端性能优化实践_客户端优化...双十一大促时,客户客服那边反馈商品信息加载卡顿,在不断有订单咨询时,甚至出现了商品信息一直处于加载状态的情况,显然,在这... 赞踩article访问网站显示不安全怎么办?教您不花一分钱解决!_此站点的连接不安全...访问网站时显示“不安全”,针对不同的原因有不同的解决方式,下面是常见的几种原因和对应的解决办法。如果网站仅使用HTTP协... 赞踩article【Program with me】python开发Minecraft | 不借助图形引擎 | 从底层...用python开发minecraft,不借助任何游戏引擎哦_modernglmoderngl ... 赞踩articleminecraft源代码_谁才是Minecraft最老的画面?6张截图,老mc眉头紧皱:没那么简单....这年头,想要证明自己是个10年的mc玩家太难了!甚至一个7岁“高龄”的小学生,都敢自称自己是十年玩家。那么问题来了,如果... 赞踩articleLinux下QT程序启动失败问题排查方法...当我们使用高版本的gcc编译器编译程序在低版本的gcc系统中运行时很容易出现C库找不到的问题,主要是因为使用高版本gcc... 赞踩article深入探索AIGC底层技术...深入探索AIGC底层技术在这篇技术博客文章中,我们将深入探索AIGC(AI对话大师)的底层技术。AIGC是由OpenAI... 赞踩article学习typeScript写服务(nestjs)【四,掉接口将数据展示前端页面(vue3+ts)】_v...文章目录前言一、安装elementUI二、搭建路由及静态页面1. 路由搭建2. 静态页面三、封装axios请求1. 首先... 赞踩article【分布式数据仓库Hive】HivQL的使用...一、Hive的基本操作1. 使用Hive创建数据库test2. 检索数据库(模糊查看),检索形如’te*’的数据库3. ... 赞踩articlespring boot整合elasticsearch实现查询功能_springboot整合es查询数...本文介绍了如何在SpringBoot应用中集成Elasticsearch,包括添加相关依赖,配置连接信息,以及使用Ela... 赞踩articleAIGC从入门到实战:AIGC 的发展历程_hqtaigc...AIGC从入门到实战:AIGC 的发展历程01. 背景介绍1.1 问题的由来AIGC(AI-Generated Cont... 赞踩相关标签git前端魔百盒刷机魔百盒固件移动魔百盒机顶盒ROM盒子ROMgithub工具视频号下载数据库sqlssl网络协议jvmfpga开发javascriptvue.jsandroid studioandroidreact.js性能优化安全python开发语言
赞
踩
<textarea rows="2" cols="20" type="text" id="inpLeft" name="inpLeft">——我们要坚持开放、绿色、廉洁理念,不搞封闭排他的小圈子,把绿色呃呃呃作为</textarea> <textarea rows="2" cols="20" type="text" id="inpRight" name="inpRight">——我们要坚持开放、绿色、廉洁理念,项目压缩文件夹/工单管理,不搞封闭排他的小圈子,把绿色的的的作为</textarea> <input id="inpStartCompare" type="button" value="对比" ng-click="startCompare();" /> <div id="show1" ></div> <div id="show2"></div>
$scope. startCompare=function() { var a = $.trim($("#inpLeft").val()); var b = $.trim($("#inpRight").val()); var result = getHighLightDifferent(a, b); $("#show1").html(result[0]); $("#show2").html(result[1]); return false; } function StringBuffer() { this.__strings__ = []; }; StringBuffer.prototype.append = function (str) { this.__strings__.push(str); return this; }; //格式化字符串 StringBuffer.prototype.appendFormat = function (str) { for (var i = 1; i < arguments.length; i++) { var parent = "\\{" + (i - 1) + "\\}"; var reg = new RegExp(parent, "g") str = str.replace(reg, arguments[i]); } this.__strings__.push(str); return this; } StringBuffer.prototype.toString = function () { return this.__strings__.join(''); }; StringBuffer.prototype.clear = function () { this.__strings__ = []; } StringBuffer.prototype.size = function () { return this.__strings__.length; } var flag = 1; function getHighLightDifferent(a, b) { var temp = getDiffArray(a, b);//找出a和b不一样的地方 var a1 = getHighLight(a, temp[0]);//将a不一样的地方高亮 var a2 = getHighLight(b, temp[1]);//将b不一样的地方高亮 return new Array(a1,a2); } //对比出来的不一样的地方高亮 function getHighLight(source, temp) { var result = new StringBuffer(); var sourceChars = source.split(""); var tempChars = temp.split(""); var flag = false; for (var i = 0; i < sourceChars.length; i++) { if (tempChars[i] != ' ') { if (i == 0) { result.append("<span style='color:red'>"); result.append(sourceChars[i]); } else if (flag) { result.append(sourceChars[i]); } else { result.append("<span style='color:red'>"); result.append(sourceChars[i]); } flag = true; if (i == sourceChars.length - 1) { result.append("</span>"); } } else if (flag == true) { result.append("</span>"); result.append(sourceChars[i]); flag = false; } else { result.append(sourceChars[i]); } } return result.toString(); } //找出a和b不一样的地方 function getDiffArray(a, b) { var result = new Array(); //选取长度较小的字符串用来穷举子串 if (a.length < b.length) { var start = 0; var end = a.length; result = getDiff(a, b, start, end); } else { var start = 0; var end = b.length; result = getDiff(b, a, 0, b.length); result = new Array(result[1], result[0]); } return result; } //将a的指定部分与b进行比较生成比对结果 function getDiff(a, b, start, end) { var result = new Array(a, b); var len = result[0].length; while (len > 0) { for (var i = start; i < end - len + 1; i++) { var sub = result[0].substring(i, i + len); var idx = -1; if ((idx = result[1].indexOf(sub)) != -1) { result[0] = setEmpty(result[0], i, i + len); result[1] = setEmpty(result[1], idx, idx + len); if (i > 0) { result = getDiff(result[0], result[1], start, i); //递归获取空白区域左边差异 } if (i + len < end) { result = getDiff(result[0], result[1], i + len, end);//递归获取空白区域右边差异 } len = 0;//退出while循环 break; } } len = parseInt(len / 2); } return result; } //将字符串s指定的区域设置成空格 function setEmpty(s, start, end) { var array = s.split(""); for (var i = start; i < end; i++) { array[i] = ' '; } return array.join(""); }
## 效果图 