代码之家  ›  专栏  ›  技术社区  ›  Yassin Mo

“我”在这里有什么用?我使用猫鼬和Nodejs[重复]

  •  0
  • Yassin Mo  · 技术社区  · 4 年前

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

    $.fn.highlight = function(what,spanClass) {
        return this.each(function(){
            var container = this,
                content = container.innerHTML,
                pattern = new RegExp('(>[^<.]*)(' + what + ')([^<.]*)','g'),
                replaceWith = '$1<span ' + ( spanClass ? 'class="' + spanClass + '"' : '' ) + '">$2</span>$3',
                highlighted = content.replace(pattern,replaceWith);
            container.innerHTML = highlighted;
        });
    }
    
    0 回复  |  直到 14 年前
        1
  •  23
  •   Joseph    14 年前
    pattern = new RegExp('(>[^<.]*)(' + what + ')([^<.]*)','gi')
    

    add the 'i' flag 使其不区分大小写

        2
  •  0
  •   jjm    14 年前

    只需添加“i”标志。

    pattern = new RegExp('(>[^<.]*)(' + what + ')([^<.]*)','gi')
    
        3
  •  0
  •   Zed    14 年前
    $.fn.highlight = function(what,spanClass) {
    return this.each(function(){
        var container = this,
            content = container.innerHTML,
            pattern = new RegExp('(>[^<.]*)(' + what + ')([^<.]*)','gi'),
            replaceWith = '$1<span ' + ( spanClass ? 'class="' + spanClass + '"' : '' ) + '">$2</span>$3',
            highlighted = content.replace(pattern,replaceWith);
        container.innerHTML = highlighted;
    });
    

    }

        4
  •  0
  •   j08691    14 年前

    只要加上“我”:

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

    从…起 MDN :

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