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