文章正文

JS处理网站页面非标签部分内容的替换

加入时间:2020/11/2 10:37:07

function htmlTextReplace(inputHtml, replaceTarget, replaceValue) {

  let tags = []//数组  分组字符串

  inputHtml.replace(/<.+?>/g, (item) => {

    tags.push(item)

  })

  var outHtml = ''//最后输出数据

  for (let i = 0; i < tags.length; i++) {

    outHtml += tags[i]//输出内容先放输入标签

    if (i < tags.length - 1) { //判断是否最后一个字符串

      let startTagIndex = inputHtml.indexOf(tags[i])//获取字符串在全部中的索引位置

      let endTagIndex = inputHtml.indexOf(tags[i + 1], startTagIndex + tags[i].length - 1)  //结束位置= 下一个匹配字符串的索引位置

      if (startTagIndex != endTagIndex) {//如果索引为位置一样,说明下一个字符串为空?

        let reg = new RegExp(replaceTarget, 'g')

        let tempstr=inputHtml.substring(startTagIndex + tags[i].length, endTagIndex);

        tempstr=tempstr.replace(reg, replaceValue);

        outHtml+=tempstr;

        //outHtml += inputHtml.substring(startTagIndex + tags[i].length, endTagIndex).replace(reg, replaceValue)//放入替换后的内容

      }

      inputHtml = inputHtml.substring(endTagIndex, inputHtml.length)//输入内容改变成未处理内容的部分

    }

  }

  return outHtml;

}

 

调用方式:htmlTextReplace(html, '%', '*')//其中html是页面的源代码,可以替换内容中的%号为*号,而不用担心标签中的100%之类的符号被替换掉!

字体大小[ ]

版权所有:有信心——uxinxin 我的个人网站欢迎常来!手机版(新站开启,请多多关照) 豫ICP备12017930号-1
 豫公网安备 41910102000493号