var str = 'a1ba2b';
var reg = /a(.+?)b/g;
while( true )
{
var match = reg.exec(str);
if(match)
alert(match[1]);
else
break;
}关于设置g后为什么这样,说明是这样的:
如果没有设置全局标志 (g),数组的0元素包含整个匹配,而第 1 到 n 元素包含了匹配中曾出现过的任一个子匹配。这相当于没有设置全局标志的 exec 方法。如果设置了全局标志,元素0到n中包含所有匹配