代码如下:
var re = null;
i;
/* 由于实例属性不会重置,第一次调用 test 找到了 “cat”,第二次调用是从索引为3的字符开始,直至字符串结尾,第三次调用则从开头开始。 */
/* true false true false...*/
for (i = 0; i < 10; i++) {
re = /cat/g;
re.test("catastrophe");
}
/* 使用RegExp构造函数创建正则表达式,每次迭代都会产生一个新的RegExp实例,所以结果都为true。 */
/* true true true true...*/
for (i = 0; i < 10; i++) {
re = new RegExp("cat", "g");
re.test("catastrophe");
}
- 由于实例属性不会重置,第一次调用 test 找到了 “cat”,第二次调用是从索引为3的字符开始,直至字符串结尾,第三次调用则从开头开始。
- 使用RegExp构造函数创建正则表达式,每次迭代都会产生一个新的RegExp实例,所以结果都为true。