为什么RegExp.exec(...)为我的第二个参数返回undefined?

时间:2015-09-07 12:13:19

标签: javascript regex

我有以下正则表达式:

var re = /{{(.*?)}}|\$\|(.*?)\$\|/;

我正在运行以下代码(在Chrome和iOS中产生相同的结果):

re.exec('$|Order.CreateDate$|');

我正确返回了一个数组,但是第二个参数是未定义的,匹配的括号是在索引3处,我不明白为什么?结果如下:

[
    "$|Order.CreateDate$|",
    undefined,
    "Order.CreateDate"
]

1 个答案:

答案 0 :(得分:1)

这种情况正在发生,因为您的第一个被捕获的群组与使用此子模式的任何内容都不匹配:

{{(.*?)}}