使用替换从HTML

时间:2019-06-26 19:09:07

标签: javascript html

我正在使用innerHTML方法从div检索innerHTML。整个字符串中可以有<strong> </strong>的多个实例

我正在这样做,以替换“ strong”标签

inpStr=this.innerHTML 

inpStr=this.innerHTML.replace('<strong>','').replace('</strong>','')

但是,这仅取代了强标签的第一次出现。我对regex不太熟悉,但是我读到有关使用/g来替换所有出现的内容,但是它也不起作用。

inpStr=this.innerHTML.replace('/<strong>/g','').replace('/<//strong>/g','')

更改为上面的代码根本不起作用,甚至根本无法替换任何内容。另外,我在/<//strong>/g',''中使用double //来强行转义结束标记,但我不确定。

3 个答案:

答案 0 :(得分:3)

  1. 您的转义不正确,即\/不是//
  2. 您可以使用可选字符,即\/?

inpStr=this.innerHTML.replace('/<\/?strong>/g','')

答案 1 :(得分:1)

您可以使用以下功能

const replaceAll = (word, search, replacement) => {
    return word.replace(new RegExp(search, 'g'), replacement);
};

答案 2 :(得分:1)

您需要转义/,否则JavaScript会认为您关闭了正则表达式。用\完成。 /<\/strong>/g

document.getElementById("button").addEventListener("click", () => {
  const foo = document.getElementById("foo");
  foo.innerHTML = foo
    .innerHTML
    .replace(/<strong>/g, "")
    .replace(/<\/strong>/g, "");
});
<div id="foo">
  <strong>foo</strong>
  <strong>foo</strong>
  <strong>foo</strong>
  <strong>foo</strong>
  <strong>foo</strong>
  <strong>foo</strong>
  <strong>foo</strong>
  <strong>foo</strong>
  <strong>foo</strong>
  <strong>foo</strong>
  <strong>foo</strong>
  <strong>foo</strong>
</div>

<button id="button">Weaken</button>