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中包含所有匹配。
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中包含所有匹配。
解决方案 »
- IE解析JSON报错,缺少 ']',chrome 浏览器正常
- javascript中怎么调用函数 简单点 菜鸟 例子如下
- js怎么用正则表达式把非英文和数字的字符替换成空格?可以吗
- jquery simplemodal遮罩的问题,高手帮解决!!
- 求一个兼容ff的qq客服漂浮代码
- 求兼容所有浏览器的body居中方案
- document.getElementById()----在线等
- ★★★★★有关得到Radio的索引问题★★★★★
- 绝好赚分机会,不要错过啊!请高手快进来!
- 各位大侠请给我一个类似outlook的菜单的js代码?
- |zyciis| 为什么我的一段跳转代码在Flash中调用没有效果 谢谢
- 找出猴王演示图及代码
var re = new RegExp("a(.+?)b","g"); //这里的全局标志 'g' 一定要设的 否则 while循环成死循环了 而且结果永远是第一个匹配的 1
var s = "a1ba2b";
while (a=re.exec(s))
{
alert(a[1]);
}