从所有元素中获取所有文本,替换某些预先确定的单词,仅限javascript

从所有元素中获取所有文本,替换某些预先确定的单词,仅限javascript,javascript,search,text,replace,find,Javascript,Search,Text,Replace,Find,当用户加载页面时,我试图检索文档或网页上的所有文本, 我试图在所有文本中搜索由[name value]数组定义的特定单词, 我试图用相应的值替换搜索到的单词的每个实例 范例 我正在使用chrome扩展在页面加载时注入我的js <document> <head>web page</head> <body> <p>paragraph of text. stack overflow

当用户加载页面时,我试图检索文档或网页上的所有文本, 我试图在所有文本中搜索由[name value]数组定义的特定单词, 我试图用相应的值替换搜索到的单词的每个实例

范例

我正在使用chrome扩展在页面加载时注入我的js

<document>
       <head>web page</head>
          <body>
             <p>paragraph of text. stack overflow is wonderful</p>
             <p>another paragraph of text. stack overflow is great</p>
             <p>third paragraph with nested list
                 <ol>
                    <li>stack overflow yay</li>
                    <li>stack overflow wow</li>
                 </ol>
                 <img alt"stack is fun"></img>
             </p>
           </body>

网页
一段文字。堆栈溢出非常好

另一段文字。堆栈溢出非常好

带嵌套列表的第三段
  • 堆栈溢出
  • 堆栈溢出哇
  • 单词堆栈在许多上下文和标记中多次出现。 我想使用名称-值对[stack:Snapshot,wonderful:Excellence]搜索整个文档, 然后用新值替换原来的单词。 页面应该用新单词代替旧单词刷新,所以 stack的每个实例现在都应该是零食,
    每个精彩的例子现在都应该说精彩。

    你可以简单地用
    regex
    g
    )中的
    全局标志替换
    主体
    innerHTML

    在代码片段中,我创建了一个
    数组
    ,由
    对象
    组成,带有
    名称
    ,其中
    名称
    将成为目标,
    将取代
    名称
    。我循环遍历
    数组
    ,并在
    document.body.innerHTML
    上使用
    全局标志
    执行
    regex
    ,以替换所有匹配的ocurrency

    就这样

    const单词=[
    {
    “targetValues”:[“stack”、“sack”、“stck”],
    “价值”:“零食”
    },
    {
    “targetValues”:[“精彩”],
    “价值”:“惊人”
    }
    ];
    words.forEach(word=>{
    word.targetValues.forEach(目标=>{
    控制台日志(目标);
    设reg=newregexp(target,“gi”);
    document.body.innerHTML=document.body.innerHTML.replace(reg,word.value);
    })
    })
    一段文字。堆栈溢出非常好

    另一段文字。堆栈溢出非常好

    带嵌套列表的第三段
  • 堆栈溢出
  • 堆栈溢出哇
  • 解雇

    麻袋拼错了

    stck又拼错了


    sTcK再次拼写错误,并带有一些大写字符

    ,这正是我想要做的,非常感谢!更详细地说,是否有一种方法可以在“名称”中指定多个单词,例如“名称”;“stack”、“shack”、“smack”,并且这些词中的任何一个都等于相同的值。我的实际例子是,对于那些说“上帝”的文档,我用大写或正确拼写替换所有小写或拼写错误的实例。即上帝,上帝,或者上帝将被数组中的值替换为上帝?我已经对帖子进行了更新并编辑了截取的代码。