替换/突出显示JavaScript中的字符串-保持区分大小写
我想突出显示句子中的一个字符串。替换应使用不区分大小写的字符(如句子替换/突出显示JavaScript中的字符串-保持区分大小写,javascript,jquery,Javascript,Jquery,我想突出显示句子中的一个字符串。替换应使用不区分大小写的字符(如句子My foo bar中的字符串foo) 这对我来说没问题: var regEx = new RegExp(this._searchString, "gi"); var label = $(item).text(); label = label.replace(regEx, '<span style="font-weight:bold;">' + this._searchString + '</span>'
My foo bar
中的字符串foo
)
这对我来说没问题:
var regEx = new RegExp(this._searchString, "gi");
var label = $(item).text();
label = label.replace(regEx, '<span style="font-weight:bold;">' + this._searchString + '</span>');
$(item).html(label);
var regEx=new RegExp(this.\u searchString,“gi”);
变量标签=$(项).text();
label=label.replace(regEx,“+this.\u searchString+”);
$(项目).html(标签);
这里的问题是:
如果我在My foo bar
中搜索并替换foo
,结果将是
我的食物条
,但我想要的是我的食物条
因此,搜索应该忽略区分大小写,而不是替换。知道怎么做吗?我看到的唯一方法是首先检查字符串是否包含搜索的字符串,提取它(区分大小写),修改它并将其放回字符串中。但这对我来说似乎太多了,不是吗?你必须在一个组中捕获字符串,方法是将它用括号括起来,并在替换字符串中引用
$1
它
编辑:我用\b
包装了匹配模式,以便只匹配整个单词。
var original_string='My Foo bar',
变量='foo',
regex=newregexp('(\\b'+变量+'\\b''gi');//注意变量周围的括号
log(原始字符串.replace(regex,'precious$1 is really');//在这里,您使用以下方法使用$1引用第一次捕获:
str=$(“#测试”).text()
var regEx=新的RegExp(“foo”、“gi”);
str=str.replace(正则表达式,函数(a,b){
控制台日志(a)
返回“+a+”
})
$(“#测试”).html(str)
带Foos和Foo的My Foo bar
如何在正则表达式中传递javascript变量?我尝试了”/(“+variable+”)/gi'
,但它不起作用。这是因为您通过将正则表达式用引号括起来而将其转换为字符串。使用RegExp
构造函数<代码>变量reg=RegExp(“(“+变量+”)”,“gi”)代码>