Javascript 替换整个页面上多个单词的所有实例

Javascript 替换整个页面上多个单词的所有实例,javascript,Javascript,我有几个不同的单词需要使用Javascript替换为不同的单词。我认为我可以使用replace函数来实现这一点,但它似乎只在第一次调用时起作用 然而,由于我需要替换的单词彼此相似,这导致了某种问题,我不确定如何修复它。我还需要使用Javascript和而不是jQuery来实现这一点。谢谢 例如: 函数颜色(){ document.body.innerHTML=document.body.innerHTML.replace(/A/g,“A”); document.body.innerHTML=d

我有几个不同的单词需要使用Javascript替换为不同的单词。我认为我可以使用replace函数来实现这一点,但它似乎只在第一次调用时起作用

然而,由于我需要替换的单词彼此相似,这导致了某种问题,我不确定如何修复它。我还需要使用Javascript而不是jQuery来实现这一点。谢谢

例如:

函数颜色(){
document.body.innerHTML=document.body.innerHTML.replace(/A/g,“A”);
document.body.innerHTML=document.body.innerHTML.replace(/A1/g,“A1”);
}

A.
A1
点击

在几乎所有情况下替换
body.innerHTML
都是错误的。它可能在一些琐碎的示例上工作,但对于任何非琐碎的应用程序,它都会失败。看

为了了解为什么这种方法是非启动的,请考虑您的文档是否具有以下元素:

<div style="color: #AA144"></div>
正文{
背景:白色;
}

福巴
Foobaz A1
富群AA
珊瑚

A巴巴埃洛世界A1


欢迎来到SO!你能说明你的预期产出是什么吗?您的目标是在文档中用一个空格来包装某些单词?这种获取文档的整个
innerHTML
并通过正则表达式运行的方法是一种反模式。最好遍历DOM并执行替换,但在不知道要实现什么的情况下,很难向您展示如何执行此操作。例如,如果您只想在单个元素上执行此交换,那么这比整个文档容易得多。谢谢你提供的信息。这是我没有考虑的一个非常好的观点,这个解决方案非常有效!非常感谢。最后一个问题,我将如何格式化此文件以使用不同的颜色?假设我想使“A”的所有实例变为红色,而“B”变为蓝色?关于
不要用正则表达式解析HTML的观点很好。
有趣的是,这仍然存在与OP问题相同的问题。请查看我的答案(被否决)并查看代码片段后的注意事项。@eprkr没问题。“移动门柱”是不受欢迎的——最好针对新问题提出新问题,但我还是用可能的解决方案更新了我的答案。@a--m是的,那是另一个问题。幸运的是,我们可以依靠连接的正则表达式自动处理所有这些,因为它不会重叠匹配或在选择匹配后回溯。逻辑有点依赖于用例,但它与解析带有正则表达式的HTML问题不同。@ggorlen很高兴知道。我想我不想仅仅因为新问题就滥发新问题,但我会在将来记住这一点。我在替换F2和F时遇到了一个问题,但我意识到问题是我在检查F,然后是F2,而不是相反。现在开始工作了。非常感谢!