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

时间:2012-10-11 12:37:25

标签: javascript regex

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

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

函数顶部的搜索词可以包含一个capitol,我想让它匹配任何带有大写或小写的字符串,因此是'i'标记。

在进行替换时我得到了奇怪的结果,因为它需要原始的搜索字符串(可以是任何混合)并使用替换字符可能有不同的格式。

我真的很想保留原始格式并添加其周围的范围。我的方法是最好的方法吗?如果是,您可以在Perl中以相同的方式使用组吗? e.g。

s/ \(=\+\) /\1/g

我尝试使用类似类型的语法和示例只能在Web中生成文字字符串替换

2 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:3)

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

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"