需求
- 将某一带有html的文本中的关键字,替换成a标签,发现html中title 里包含关键字也会被替换,研究发现,正则替换难度太大,因此采取了 用占位符 拆箱装箱的形式解决了问题,下方是解决方案
要检测到文本
var text=`<p style="text-align:center">
<a href="https://www.csdn.net/" target="_blank"></a>
</p>
<p>
说明:<br>
</p>
<p>
哈哈哈哈哈哈哈
<a href="https://www.csdn.net/" target="_blank">点击这里查看详情</a>
</p>
<p>
哈哈哈哈哈哈
</p>`;
将检测到div装进数组
var divArray=text.match(new RegExp('<[^>]+>',"g"));
将div标签替换占位符
var replaceDiv= text.replace(new RegExp('<[^>]+>',"g"),"{0}");
将占位符替换成div标签
var result="";
replaceDiv.split("{0}").forEach((item, index, array) => {
if(index>0){result+=item+a[index-1]} else{ result+=item;}
})