JavaScript正则表达式 - 替换时强制执行

时间:2009-12-10 06:09:16

标签: javascript regex case

JavaScript regex标准是否支持在进行搜索/替换时强制执行?

我一般都知道在正则表达式的替换部分中强制捕获组的情况的\ u等选项。我无法弄清楚如何在JavaScript正则表达式中执行此操作。 我无法访问JavaScript代码本身,而是我正在使用的程序允许输入正则表达式字符串,并将其传递给正则表达式引擎本身。

3 个答案:

答案 0 :(得分:1)

如果我理解正确,不。

您无法在正则表达式模式中评估javascript(将匹配转换为大写)。

我只知道str.replace()转换为大写。

答案 1 :(得分:1)

使用正则表达式进行字符串匹配。但是,替换只关心要替换的主题字符串的哪一部分(由正则表达式匹配提供),它只是根据什么来直接替换字符串你给它:

var subject = "This is a subject string";

// fails, case-sensitive match by default
subject.replace(/this/, "That"); 

// succeeds, case-insensitive expression using /i modifier, replaces the word "This" with the word "That"
subject.replace(/this/i, "That"); 

现在,如果您想捕获匹配字符串的一部分并使用它来更改大小写,那么您也可以使用表达式组(表达式中的括号)来执行此操作:

var subject = "This is a subject string";
var matches = subject.match(/(subject) string/i);
if (matches.length > 0)
{
    // matches[0] is the entire match, or "subject string"
    // matches[1] is the first group match, or "subject"
    subject.replace(matches[1], matches[1].toUpperCase());
    // subject now reads "This is a SUBJECT string"
}

简而言之,如果您愿意,可以通过匹配来处理区分大小写。做替换就像告诉它用于替换的直接字符串一样简单。

答案 2 :(得分:0)

默认情况下,JavaScript正则表达式区分大小写,如果传递/i标志,则支持不区分大小写。