【问题标题】:Tag specific string replace标记特定字符串替换
【发布时间】:2011-06-17 08:45:28
【问题描述】:

我有以下功能

函数替换器(旧字符串,新字符串){ document.body.innerHTML = document.body.innerHTML.replace(oldstring, newstring); }

我希望能够替换任何文本如果不在下面的标签

一些文字

或在 字符之间。

当 oldstring 在 a 标记内或 字符之间时,能否告诉我是否有跳过的方法。

提前谢谢你!

【问题讨论】:

    标签: javascript regex string tags


    【解决方案1】:

    替换正文的innerHTML从来都不是一个好方法,它会导致重新渲染整个页面,这可能会产生不良影响。

    您可以在页面中搜索该字符串:

    如果找到任何,确定该范围的父元素节点(或者如果需要,也可以是他的祖先之一)是否是要排除的元素。如果不是,请替换文本。

    不幸的是,以上两种方法都不适用于歌剧。

    【讨论】:

      【解决方案2】:

      我认为以下应该可以解决问题:

      function replacer(oldstring, newstring) {
          var regExp = new RegExp("(<[^<>]+>)" + oldstring + "(</[^<>]+>)", "g");
          document.body.innerHTML = document.body.innerHTML.replace(regExp, "$1" + newstring + "$2");
      }
      

      【讨论】:

      • 那是因为我忘记将新字符串分配给正文 :) 它现在应该可以工作了...
      猜你喜欢
      • 2020-12-16
      • 1970-01-01
      • 1970-01-01
      • 2014-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-09
      相关资源
      最近更新 更多