与 .exec() 匹配

匹配使用 .exec()

RegExp.prototype.exec(string) 返回一系列捕获,如果没有匹配则返回 null

var re = /([0-9]+)[a-z]+/;
var match = re.exec("foo123bar");

match.index 是 3,匹配的(从零开始)位置。

match[0] 是完整的匹配字符串。

match[1] 是与第一个捕获组对应的文本。match[n] 将是第 n 个被捕获组的值。

使用 .exec() 循环匹配

var re = /a/g;
var result;
while ((result = re.exec('barbatbaz')) !== null) {
    console.log("found '" + result[0] + "', next exec starts at index '" + re.lastIndex + "'");
}

预期产出

发现’a’,下一个 exec 从索引'2’开始
找到’a’,下一个 exec 从索引'5’开始
找到’a’,下一个 exec 从索引'8’开始