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