RegExp exec无法搜索带有“ g”标志的所有字符串

时间:2019-02-25 12:16:21

标签: javascript regex

我已经编写了一个代码来从html元素textnode中查找所有匹配项,我已经在new RegExp(expression, "g")中添加了“ g”标志,但是它仍然无法搜索所有匹配字符串。 / p>

var regex = new RegExp(/\[(.*?)\]/, "g")
var text = document.getElementById("text01")
var library_unique_languages = {
  "word.company": {
    eng: "company"
  }
}

let nodes = text.childNodes
nodes.forEach((node) => {

  if (node.nodeType === 3) {
    let data = regex.exec(node.textContent)
    if (data) {
      node.textContent = node.textContent.replace(data[0], library_unique_languages[data[1]]["eng"]);
    }
  }
})


var regex2 = new RegExp(/\$\{(.*?)\}\$/, "g")
var text2 = document.getElementById("text02")
let nodes2 = text2.childNodes
nodes2.forEach((node2) => {

  if (node2.nodeType === 3) {
    let data2 = regex2.exec(node2.textContent)
    if (data2) {
      node2.textContent = node2.textContent.replace(data2[0], library_unique_languages[data2[1]]["eng"]);
    }

  }
})
<p id="text01"> List: [word.company] [word.company] [word.company] [word.company] End
</p>

<p id="text02"> List: ${word.company}$ ${word.company}$ ${word.company}$ ${word.company}$ End
</p>

上面是代码片段,如您所见,它仅替换了第一个匹配的字符串。

请告知。

谢谢。

0 个答案:

没有答案