如何在javascript正则表达式匹配中将多个匹配(/ g)与反向引用相结合

bra*_*rad 2 javascript regex

当使用/ g(获得多个匹配)和括号(获得反向引用)时,我对正则表达式匹配返回的数组感到困惑.我不清楚如何获得反向引用,因为匹配数组的下标似乎是指多个匹配,而不是后引用.

例如:

string = "@abc @bcd @cde";    
re2 = '@([a-z]+)';    
p = new RegExp(re2,["g"]);    
m = string.match(p)   
for (var i in m) { alert(m[i]; }
Run Code Online (Sandbox Code Playgroud)

这是回归,"@abc", "@bcd", "@cde"
但我希望它返回"abc", "bcd", "cde"

我怎么得到后者?

kan*_*gax 5

var str = "@abc @bcd @cde",
    re = /@([a-z]+)/g,
    match;

while (match = re.exec(str)) {
  // match[1] contains text matched by first group, match[2] - second, etc.
  alert(match[1]);
}
Run Code Online (Sandbox Code Playgroud)