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