Javascript score使用正则表达式匹配字符串中的scoreb

Javascript score使用正则表达式匹配字符串中的scoreb,javascript,jquery,regex,highlight,Javascript,Jquery,Regex,Highlight,我试图突出显示div中匹配的字符串。这里遇到的问题是我应该突出显示字符串“score”,无论它出现在字符串中的任何位置。但它与字符串“scoreboard”匹配,并突出显示“scoreb”字符串 var res=$(“#div”).text(); 控制台日志(res); var regex=new RegExp(“(^ |\\s)分数(\\s |$$,|\),“ig”); res=res.replace(正则表达式,函数(匹配){ match=match.replace(/^\s/g,“”);

我试图突出显示div中匹配的字符串。这里遇到的问题是我应该突出显示字符串“score”,无论它出现在字符串中的任何位置。但它与字符串“scoreboard”匹配,并突出显示“scoreb”字符串

var res=$(“#div”).text();
控制台日志(res);
var regex=new RegExp(“(^ |\\s)分数(\\s |$$,|\),“ig”);
res=res.replace(正则表达式,函数(匹配){
match=match.replace(/^\s/g,“”);
match=match.replace(/\s$/g,“”);
返回“”+匹配+“”;
});
控制台日志(res);
$(“#div”).html(res)

记分牌上的总分为+3分。

问题是因为您没有转义RegExp字符串中的所有
\
字符;你错过了最后两个:

var regex = new RegExp("(^|\\s)score(\\s|<\\/span>|$|,|\\.)", "ig");
var regex=new RegExp(“(^ |\\s)分数(\\s |$$,| \.),“ig”);
还请注意,您可以使用正则表达式文字来避免转义它们:

var regex = /(^|\s)score(\s|<\/span>|$|,|\.)/ig;
var regex=/(^ |\s)分数(\s |$$,|\)/ig;
var res=$(“#div”).text();
var regex=/(^ |\s)分数(\s |$$,|\)/ig;
res=res.replace(正则表达式,函数(匹配){
match=match.replace(/^\s/g,“”);
match=match.replace(/\s$/g,“”);
返回“”+匹配+“”;
});
$(“#div”).html(res)

记分牌上的总分为+3分。

为什么不简单一点呢

匹配任何出现的
得分
const str='记分板上的总分为+3分。'
文件。写入(str.replace(/(score)/g,“$1”)
span{
背景:黄色;
}
newregexp(“(^ |\\s)分数(\\s |$$,|”),“ig”);I jsut移除了最后一个挡块,其工作不知道如何:D