不区分大小写的包装子字符串和标签

Sea*_*son 4 javascript regex

var searchText = "hello world";
var searchTextRegExp = new RegExp(searchText , "i"); //  case insensitive regexp
var text = "blahblah Hello Worldz";

text.replace(searchTextRegExp , '<match>' + searchText + '</match>');
Run Code Online (Sandbox Code Playgroud)

我正在努力改进这段代码.目前,它降低了Hello World的范例,因为它使用searchText作为替换值.

我希望只使用标记包装Hello World,而不是修改其大写或小写,同时仍保持不区分大小写的搜索.

这样做的好方法是什么?string.indexOf是区分大小写的我相信 - 这让事情变得有点复杂我想?

Bar*_*mar 8

在替换文本中,您可以$&用来引用正则表达式匹配的任何内容.

text = text.replace(searchTextRegExp , '<match>$&</match>');
Run Code Online (Sandbox Code Playgroud)

您还可以使用$1,$2等来引用正则表达式中捕获组的匹配项.