获取正则表达式中匹配的组的索引?

Mat*_*ton 2 javascript regex indexing match regex-group

我有一个正则表达式:

/(alpha)|(beta)|(gamma)/gi
Run Code Online (Sandbox Code Playgroud)

一些要匹配的文字:

Betamax. Digamma. Alphabet. Hebetation.
Run Code Online (Sandbox Code Playgroud)

比赛是:

beta, gamma, alpha, beta
Run Code Online (Sandbox Code Playgroud)

我正在寻找的价值观是:

1,2,0,1
Run Code Online (Sandbox Code Playgroud)

...我可以确定在正则表达式中匹配的组的索引吗?

Ber*_*rgi 5

访问组,您需要.exec()重复使用:

var regex = /(alpha)|(beta)|(gamma)/gi,
    str = "Betamax. Digamma. Alphabet. Hebetation.";
for (var nums = [], match; match = regex.exec(str); )
    nums.push(match.lastIndexOf(match[0]));
Run Code Online (Sandbox Code Playgroud)

如果你想让indizes从零开始,你可以使用

    nums.push(match.slice(1).indexOf(match[0]));
Run Code Online (Sandbox Code Playgroud)