不区分大小写的搜索,区分大小写替换



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

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

函数顶部的搜索词可以包含一个国会大厦,我想让它匹配任何带有大写或小写的字符串,因此使用"i"标志。

在进行替换时,我最终会得到奇怪的结果,因为它采用原始搜索字符串(可以是任何混合)并将其用作可能具有不同格式的替换。

我真的很喜欢保留原始格式并在其周围添加跨度。我的方法是否是最好的方法?如果是,你能像在Perl中一样使用组吗?例如

s/ (=+) /1/g

我尝试使用类似类型的语法和示例形成网络只会导致文字字符串替换

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

您可以使用组,但语法略有不同。 尝试这样的事情:

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"

最新更新