使Javascript正则表达式不区分大小写

我正在使用一个jquery函数,我发现在div中找到单词并突出显示它们。 我正在使用它和搜索工具,因此案例并不总是与单词完全匹配。 如何将其转换为不区分大小写?

$.fn.highlight = function(what,spanClass) { return this.each(function(){ var container = this, content = container.innerHTML, pattern = new RegExp('(>[^<.]*)(' + what + ')([^<.]*)','g'), replaceWith = '$1$2$3', highlighted = content.replace(pattern,replaceWith); container.innerHTML = highlighted; }); } 

 pattern = new RegExp('(>[^<.]*)(' + what + ')([^<.]*)','gi') 

添加'i'标志以使其不区分大小写

只需添加“i”标志即可。

 pattern = new RegExp('(>[^<.]*)(' + what + ')([^<.]*)','gi') 
 $.fn.highlight = function(what,spanClass) { return this.each(function(){ var container = this, content = container.innerHTML, pattern = new RegExp('(>[^<.]*)(' + what + ')([^<.]*)','gi'), replaceWith = '$1$2$3', highlighted = content.replace(pattern,replaceWith); container.innerHTML = highlighted; }); 

}

只需添加“i”:

 pattern = new RegExp('(>[^<.]*)(' + what + ')([^<.]*)','gi'), 

来自MDN :

正则表达式有四个可选标志,允许全局和不区分大小写的搜索。 要指示全局搜索,请使用g标志。 要指示不区分大小写的搜索,请使用i标志。 要指示多行搜索,请使用m标志。 要执行“粘性”搜索,从目标字符串中的当前位置开始匹配,请使用y标志。 这些标志可以单独使用,也可以以任何顺序一起使用,并作为正则表达式的一部分包含在内。