与 .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’开始