Javascript 替换文本中的单词,但仅当它不包含在特定模式中时

Javascript 替换文本中的单词,但仅当它不包含在特定模式中时,javascript,Javascript,我想替换文本中的某个单词,但前提是它不包含在特定的模式中。 具体来说,在文本中:mywordclass='someClass'>mywordmyword 我要替换的单词是myWord,但前提是它不包含在以下文本模式中:class='someClass'>myWord。你能找个人帮帮我吗 输入 myWordclass='someClass'>myWordmyWord 预期产量 myWordReplacedclass='someClass'>myWordmyWordReplaced vText=“

我想替换文本中的某个单词,但前提是它不包含在特定的模式中。 具体来说,在文本中:mywordclass='someClass'>mywordmyword 我要替换的单词是myWord,但前提是它不包含在以下文本模式中:class='someClass'>myWord。你能找个人帮帮我吗

输入 myWordclass='someClass'>myWordmyWord

预期产量 myWordReplacedclass='someClass'>myWordmyWordReplaced


vText=“myWord class='someClass'>myWord myWord”;
vWord=“myWord”;
vRegExp=`(类='TransparentAndUnderline'>.*)${vWord}(.*)`;
const vNewRegExp=新的RegExp(vRegExp,'gi');
vText=vText.replace(vWord,function(){
如果(!vnewregxp.test(vText)){//如果模式中不包含它,则替换
返回“myWordReplaced”;
}否则,什么也不做
返回;
}
})
document.getElementById(“myView”).innerHTML=vText;

将模式替换为与
class='someClass'
及其所有内容匹配的模式,并使用替换函数。如果第一个替换匹配,则替换为自身(这样就不会有任何更改);否则,请更换为替换件。例如:

const pattern=/class*=*['”]someClass['”[^>]*>.*?| myWord/g;
const str=`替换下面的myWord,但不要替换下面的myWord`;
const result=str.replace(
图案
match=>match=='myWord'?'mywordreplacemented':匹配
);
控制台日志(结果)
<div id="myView"></div>

<script>
    vText = "myWord class = 'someClass'>myWord</span> myWord"; 
    vWord = "myWord";
    vRegExp = `(class = 'TransparentAndUnderline'>.*)${vWord}(.*<\/span>)`;
    const vNewRegExp = new RegExp(vRegExp, 'gi');

    vText = vText.replace(vWord, function() {
        if (!vNewRegExp.test(vText)) { // If it is not contained in the pattern, replace
            return 'myWordReplaced';
        } else {// Otherwise, do nothing
            return;
        }
    })

    document.getElementById("myView").innerHTML = vText;
</script>