Javascript 使用区分大小写的替换进行不区分大小写的搜索

Javascript 使用区分大小写的替换进行不区分大小写的搜索,javascript,regex,Javascript,Regex,我有一个简单的正则表达式搜索和替换函数,我想知道是否有一个好方法可以在不区分大小写的搜索中进行区分大小写的替换?示例如下: function filter(searchTerm) { var searchPattern = new RegExp(searchTerm, 'ig'); .... textToCheck = textToCheck.replace(searchPattern, '<span class="searchMatchTitle">' +

我有一个简单的正则表达式搜索和替换函数,我想知道是否有一个好方法可以在不区分大小写的搜索中进行区分大小写的替换?示例如下:

function filter(searchTerm) {
    var searchPattern = new RegExp(searchTerm, 'ig');
    ....
    textToCheck = textToCheck.replace(searchPattern, '<span class="searchMatchTitle">' + searchTerm + '</span>');

我尝试在web上使用类似类型的语法和示例只会导致文本字符串替换

您可以使用组,但语法略有不同。试着这样做:

var str = 'this is a dog eat Dog eat DOG world'
str = str.replace(/(dog)/gi, '<span>$1</span>')

// str is now: "this is a <span>dog</span> eat <span>Dog</span> eat <span>DOG</span> world"
var str='这是一个狗咬狗的世界'
str=str.replace(/(狗)/gi,$1')
//str现在是:“这是一个狗咬狗的世界”
函数过滤器(搜索术语){
var searchPattern=newregexp(“(“+searchTerm+”)”,“ig”);
....
textToCheck=textToCheck.replace(搜索模式,$1');
...
}

回答得很好!工作得很漂亮。对于像我这样的其他正则表达式傻瓜来说:围绕正则表达式其余部分的开始和结束参数很重要,否则输出中只会出现“$1”。
var str = 'this is a dog eat Dog eat DOG world'
str = str.replace(/(dog)/gi, '<span>$1</span>')

// str is now: "this is a <span>dog</span> eat <span>Dog</span> eat <span>DOG</span> world"
function filter(searchTerm) {
    var searchPattern = new RegExp('('+searchTerm+')', 'ig');
    ....
    textToCheck = textToCheck.replace(searchPattern, '<span class="searchMatchTitle">$1</span>');
    ...
}