test
as a plug-in,you want to change the original dom as little as possible.常规优化:只处理var formatkeyword=text中的label元素。替换(/[\/\^$*+?.()[\]]/g,\$&')//转义处理关键字包含特殊字符,如/var finder=new regexp(“>”。*?“++“。*是吗?<“)//提取文本中的标记,以避免错误的操作元素类、ID等。innerhtml=element。内部TML。替换(finder,函数(匹配)返回匹配。replace(text,“
”+text+
))//to keyword extraction tags inside the text replacement with can solve most problems,然而,还有一个问题,只要tag attribute exists liked”>replace
”+text+
))//to keyword extraction tags inside the text replacement with can solve most problems,然而,还有一个问题,只要tag attribute exists like
Regular Optimization II:Remove of potential affecting tags
keyword
=“will replace closed tags with variable[replaced1]keyword[replaced2]//id=“keyword”inside closed tags will not be processed=[replaced1]keyword.[replaced2]=”将把保持变量替换为原始的
keyword-
The idea and source code comes from here,but the problem is:if[replaced1]contains the keyword,the exception will occurrent during the substitution,and most important,when the tag value contains the<>符号,此方法也无法正确提取标记。然后,不使用字符串,而是使用节点。element.childnodes可以最有效地清除标签中的干扰信息。[完美解决方案]handle
keyword 1keyword 2
get all child nodes through parent childnodes.子节点可以替换为innertext.replce(关键字,结果)中所需的突出显示,如下所示:keyword2(recursion:replace when the child node has no children).但是属于文本节点的关键字1只能修改文本内容,不能添加HTML,更不能控制样式。文本节点无法转换为普通节点,这也是最烦人的事情。最后,本文的重点是,由于这个特性,我对文本节点进行了第一次认真的研究。文本在此处找到,通过剪切和替换文本节点突出显示。源代码和还原突出显示源代码:const reg=new regexp(关键字。替换(/[\/\^$*+?.()[\]]/g,\$&)highlight=函数(node,reg)if(node.nodeType==3)//const只处理文本节点match=node。数据。匹配(new regexp(reg));if(match)const highlightel=document.createElement(“b”);highlightel。数据集。highlight=“y”const wordnode=节点。SplitText(匹配。索引)wordnode。SplitText(匹配[0]。length);const wordnew=document.createTextNode(wordNode.data);highlightel。appendChild(wordNew);//生成成功的wordNode突出显示节点。父节点。replaceChild(highlightel wordnode);//替换文本节点else if(nodeType==1&&node.dataset)。突出!=“y”)for(var i=0;i表白情话扣字:如何解决HTML关键字突出显示问题
版权声明:本文内容由互联网用户投稿整理编辑发布,不拥有所有权,不承担应有相关法律责任。如果文章、图片有涉嫌抄袭的内容,请发送到邮箱举报,且提供抄袭的相关证据,一但查实,会在24小时删除涉嫌侵权内容。
猜您喜欢
想知道女生是不是喜欢你,教用一个问题测试她喜欢你的方法:你可以对她说一句话:你好像长胖了一点?(看看女生是什么反应。不过如果男生问出这个问题,可能让女生觉得你情商低,就算女生喜欢你也有一定的风险性)
2024-02-20
如果男生犯了错惹女朋友生气,那就一定要想办法哄好她,因为是你错了呀。而想要哄好生气的女朋友,那你一定要认识到自己的错误,下面给大家分享惹女朋友生气检讨书1000字,希望能够帮助你哄好你的女朋友。
2024-02-19
如果女朋友说分手后做朋友是什么意思呢?如果是还爱着对方那就不应该选择分手,如果是不爱了那大家就应该彻底断了联系,真正深爱过的人是不可能在分手后做朋友的。下面就来分析女朋友的心理。
2024-02-18
脱单神器
安卓版蜜小助APP
iOS版蜜小助APP
20W+可复制撩妹话术
实战案例+话术+视频+教程
热门情话大全
开车污的句子段子 真喜欢你吞吞吐吐的样子
2019-12-03
350725
开车污的句子不能超过10个子 女生根本抵抗不住
2019-12-09
210355
老司机开车句子污 看过的都脸红了
2019-12-05
162371
老司机开车经典语句 再不上车就晚啦
2019-12-04
154752
用古诗暗示我想你 句句含蓄浪漫令人倾心
2020-01-20
128313
甜到炸的句子给闺蜜 感恩一路有你
2020-01-15
97581
开车的的句子污 老司机发车确定不上吗
2019-12-09
85726
老司机开车短污段子 老板拿两瓶可乐来
2019-11-29
42352
人看到花后的心情句子 很有文艺范
2019-12-23
40999
女生问你吃饭了吗 情话套路一套一套的
2020-02-08
39827