我已经编写了一个代码来从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>
上面是代码片段,如您所见,它仅替换了第一个匹配的字符串。
请告知。
谢谢。