疑问:
1.书上说第一问中第一段程序中实例属性不会重置,所以在第二次测试的时候会报错,但是实验证明没有错,求解~
答于2013/11/25:
经过验证,两种方式都会新建实例,然后都会从头开始找,如果是
re = /cat./g;
re = new RegExp("cat\\w");这样新建在循环外面,就是只实例化一次的话,是会有区别的,设置了/g就是全局搜,不设的话,每次都从头开始搜索
比如对于re.exec(“catdcate”); 第一个循环两次分别是catd和cate,第三次就是null了,而第二个无论循环多少次都是catd
第一问:第五章,第四节
5.4 P105
var re = null,
i;
for(i = 0;i<10;i++)
{
re = /cat/g;
re.test("catalogs");
}
for(i = 0;i<10;i++)
{
re = new RegExp("cat","g");
re.test("catalogs");
}
本文详细解析了在JavaScript中使用正则表达式时,实例属性的作用及全局搜索标志(g)的影响。通过代码示例,展示了在循环中创建正则表达式对象时,实例属性不会被重置,导致重复执行时的行为变化。
1151

被折叠的 条评论
为什么被折叠?



