Javascript .replace()contententeditable负正则表达式

Javascript .replace()contententeditable负正则表达式,javascript,typescript,replace,contenteditable,Javascript,Typescript,Replace,Contenteditable,我试图替换contenteditable中的单词,如果它们不是单词“sample”或“test”。如果它们不是这些单词,我想在我的contenteditable文本框中将它们涂成蓝色。现在正则表达式匹配所有内容,并将所有内容都涂成蓝色。它与前面没有否定或否定前瞻的正则表达式一起工作。有什么想法吗?请就如何实现这一目标提供任何建议或建议 if(e.keyCode == 32){ var text2 = document.getElementById("editor"

我试图替换contenteditable中的单词,如果它们不是单词“sample”或“test”。如果它们不是这些单词,我想在我的contenteditable文本框中将它们涂成蓝色。现在正则表达式匹配所有内容,并将所有内容都涂成蓝色。它与前面没有否定或否定前瞻的正则表达式一起工作。有什么想法吗?请就如何实现这一目标提供任何建议或建议

 if(e.keyCode == 32){ 
    var text2 = document.getElementById("editor");
    var text = document.getElementById("editor").innerHTML;
    let regexp = /^(?:(?!\b(sample|test)).)*$/g
    var newText = text.replace(regexp, function(g){
      return "<span class='colorblue'>"+g+"</span>";
    });
    document.getElementById("editor").innerHTML = newText;
    var elem = document.getElementById('editor2');
    this.caretAtEnd(text2);
    
}         
如果(e.keyCode==32){
var text2=document.getElementById(“编辑器”);
var text=document.getElementById(“编辑器”).innerHTML;
设regexp=/^(?:(?!\b(样本测试)))*$/g
var newText=text.replace(regexp,函数(g){
返回“+g+”;
});
document.getElementById(“编辑器”).innerHTML=newText;
var elem=document.getElementById('editor2');
这个.caretEnd(text2);
}         

我认为将整个东西变成蓝色,然后用不同的颜色替换“sample”和“test”会更有效(更不用说更简单的正则表达式了)。是的,我同意。我正在创建一个文本框,并试图将其设置为蓝色,以便本例中的“错误”将以蓝色突出显示。因此,如果我使用默认的蓝色,它看起来很奇怪,因为它在打字时总是蓝色。你可以先在边界上拆分,一次只做一个单词,如果你想要它是动态的,只需检查keyup。