Javascript 带标记的不区分大小写的换行子字符串 var searchText=“你好世界”; var searchTextRegExp=new RegExp(searchText,“i”);//不区分大小写的regexp var text=“blahblah Hello Worldz”; text.replace(searchTextRegExp,“+searchText+”);
我正在努力改进这段代码。目前,它降低了helloworld的大小写,因为它使用searchText作为替换值 我希望在保持不区分大小写的搜索的同时,只使用标记包装Hello World,而不修改其大小写Javascript 带标记的不区分大小写的换行子字符串 var searchText=“你好世界”; var searchTextRegExp=new RegExp(searchText,“i”);//不区分大小写的regexp var text=“blahblah Hello Worldz”; text.replace(searchTextRegExp,“+searchText+”);,javascript,regex,Javascript,Regex,我正在努力改进这段代码。目前,它降低了helloworld的大小写,因为它使用searchText作为替换值 我希望在保持不区分大小写的搜索的同时,只使用标记包装Hello World,而不修改其大小写 做这件事的好方法是什么?我相信string.indexOf是区分大小写的,这让事情变得更复杂了?在替换文本中,您可以使用$&引用任何与regexp匹配的内容 var searchText = "hello world"; var searchTextRegExp = new RegExp(sea
做这件事的好方法是什么?我相信string.indexOf是区分大小写的,这让事情变得更复杂了?在替换文本中,您可以使用
$&
引用任何与regexp匹配的内容
var searchText = "hello world";
var searchTextRegExp = new RegExp(searchText , "i"); // case insensitive regexp
var text = "blahblah Hello Worldz";
text.replace(searchTextRegExp , '<match>' + searchText + '</match>');
text=text.replace(searchTextRegExp,$&');
您还可以使用$1
、$2
等来引用regexp中捕获组的匹配项。可以包含模式,尤其是$&
:
var searchText = "hello world";
var searchTextRegExp = new RegExp(searchText , "i"); // case insensitive regexp
var text = "blahblah Hello Worldz";
text.replace(searchTextRegExp , '<match>' + searchText + '</match>');
$&
插入匹配的子字符串 所以你可以说:
text = text.replace(searchTextRegExp , '<match>$&</match>');
text.replace(searchTextRegExp,$&')。
要使用在
text
中找到的确切字符串,可以使用indexOf
而不使用正则表达式。那么:
text.replace(searchTextRegExp , '<match>$&</match>').
var index=text.toLowerCase().indexOf(searchText);
如果(索引!=-1){
text=text.子字符串(0,索引-1)+
"" +
text.substr(索引,searchText.length)+
"" +
text.substring(index+searchText.length);
}