使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标志。 这些标志可以单独使用,也可以以任何顺序一起使用,并作为正则表达式的一部分包含在内。