Как объединить несколько совпадений (/ G) с обратными ссылками в Javascript регулярных выражений - PullRequest
2 голосов
/ 11 сентября 2009

Я запутался в массиве, возвращаемом совпадением регулярного выражения при использовании / 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]; }

это возвращается "@abc", "@bcd", "@cde"
но я хочу вернуть "abc", "bcd", "cde"

как мне получить последний?

Ответы [ 2 ]

5 голосов
/ 11 сентября 2009
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]);
}
0 голосов
/ 23 сентября 2009

Вы должны использовать группу без захвата:

(?:@)([a-z]+)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...