返回匹配的正则表达式的部分

Col*_*der 4 javascript regex

在使用OR(管道)的正则表达式中,有一种方便的方法来获取匹配的表达式部分.

例:

/horse|caMel|TORTOISe/i.exec("Camel");
Run Code Online (Sandbox Code Playgroud)

回报Camel.我想要的是caMel.

我知道我可以遍历选项而不是使用一个大的正则表达式; 这会更有意义.但我很想知道它是否可以这样做.

Sco*_*yet 5

非常简单,没有.

正则表达式匹配与输入字符串有关,而不是用于创建正则表达式的文本.请注意,该文本可能会丢失,理论上甚至不需要.一个等效的匹配器可以用这样的东西构建:

var test = function(str) {
    var text = str.toLowerCase();
    return text === "horse" || text === "camel" || text === "tortoise";
};
Run Code Online (Sandbox Code Playgroud)

另一种思考方式是正则表达式的编译可以将函数的逻辑与其文本表示分开.这是单向的.

抱歉.