Javascript score使用正则表达式匹配字符串中的scoreb
我试图突出显示div中匹配的字符串。这里遇到的问题是我应该突出显示字符串“score”,无论它出现在字符串中的任何位置。但它与字符串“scoreboard”匹配,并突出显示“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,“”);
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