JS批量替换内容中关键词为超链接

  

懂点seo的人都知道要给内容中关键词加上链接,形成站内锚文本链接,这对搜索引擎优化有很大的帮助。

  

思路就是在数据库中录入若干个关键词和关键词对应的链接,当然链接可以根据关键词的id自动生成,或者直接用关键词作为链接参数,如& # 63;标签=1 & # 63;千瓦=关键词。

  

这个问题不是简单的一个批量取代那么简单,要考虑到已经存在的超链接,不能将里面的文字再次替换为超链接,还有就是图片的alt属性,或者其他标签属的标题性,里面的文字也不该被替换。

  

见下面的HTML代码:

        【& lt; a href=" http://www.baidu.com " rel=巴獠縩ofollow”rel=巴獠縩ofollow”在九寨沟概要& lt;/a>】九寨沟位于四川省阿坝州九寨沟县境内,5景点,世界自然遗产,有“五绝”之景色,我感到最绝的是海子,此生不能不去的景区。一年四季适合游,秋天是最美的。   & lt; img src=" alt="九寨沟图片“title=熬耪低计?祝辞      

这种情况你不能直接将九寨沟替换为超链接啊,不然第一个链接就会被替换为链接中包含链接,然后是图片上的alt和标题也替换了一个链接上去,这肯定是不符合HTML规范的。

  

<强>情景一:排除属性中的关键词

  

匹配的正则为:关键词[^ & lt;] *祝辞,所以排除这个关键词的正则为:关键词& # 63;! ([^ & lt;] *祝辞)。

  

<强>情景二:排除链接中的关键词

  

匹配的正则为:关键词[^ & lt;] * & lt; \/a>,所以排除这个关键词的正则为:关键词& # 63;! ([^ & lt;] * & lt; \/a>)。

  

整合两种情况的结果为:var reg=/关键词(& # 63;! ([^ & lt;] *祝辞)| ([^ & lt;] * & lt; \/a>))/ig;

  

废话不多说,最后给出一个完整的批量替换实例:

        & lt; !DOCTYPE html公共”——//W3C XHTML 1.0//DTD过渡//EN”“http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”的在   & lt; html xmlns=" http://www.w3.org/1999/xhtml "比;   & lt; head>   & lt;元http-equiv=? type”内容=" text/html;utf - 8字符集="/比;   & lt; title>无标题文档& lt;/title>   & lt;/head>   & lt; body>   & lt; div id=澳谌荨痹?   【& lt; a href=" http://www.baidu.com " rel=巴獠縩ofollow”rel=巴獠縩ofollow”在九寨沟概要& lt;/a>】九寨沟位于四川省阿坝州九寨沟县境内,5景点,世界自然遗产,有“五绝”之景色,我感到最绝的是海子,此生不能不去的景区。一年四季适合游,秋天是最美的。   & lt; img src=" alt="九寨沟图片“title=熬耪低计?比;   & lt;/div>   & lt;人力资源/比;   & lt; div id=靶隆痹?   & lt;/div>   & lt; script>   var c=. getelementbyid(“内容”).innerHTML;//var reg=/九寨沟(& # 63;! ([^ & lt;] *祝辞)| ([^ & lt;] * & lt; \/a>))/搞笑;   var json=[   {“关键”:“九寨沟”、“url”:“/九寨沟/'}   {“关键”:“景点”,“url”:“/景点/'}   {“关键”:“景区”、“url”:“/景区/'}   ];   var注册;   我(var=0; i< json.length;我+ +){   var j=json(我);   reg=new RegExp (j.key +”(& # 63; ! ([^ & lt;] *祝辞)| ([^ & lt;] * & lt; \/a>))”,“搞笑”);   c=replace (reg”& lt; a href=" + j.url + "的祝辞”+ j.key +“& lt;/a>”);   }   . getelementbyid(“新”).innerHTML=c;   & lt;/script>   & lt;/body>   & lt;/html>   之前      

替换后的效果:

  

 JS批量替换内容中关键词为超链接

  

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!

JS批量替换内容中关键词为超链接