exec()方法的结果怎么是null
来源:2-16 编程练习
曼曼前端
2021-04-23 19:40:27
var str='一个"普通字符"在匹配字符串的时候,匹配与它相同的一个字符';
var regexp1=/\"普通字符\"/g;
var regexp2=new RegExp('\\"普通字符\\"','g');
var result1=regexp1.test(str);
var result2=regexp2.test(str);
var arr1=regexp1.exec(str);
var arr2=regexp2.exec(str);
console.log(result1);
console.log(result2);
console.log(arr1);
console.log(arr2);
1回答
好帮手慕慕子
2021-04-24
同学你好,这是因为使用了全局匹配,改变了正则匹配的起始位置。
第一次匹配之后,lastIndex为7,下次匹配时,是从位置7之后进行匹配,后面没有普通字符四个字了,所以出现了null。
建议:可以手动的调整lastIndex ,这个属性是用于规定下次匹配的起始位置。代码参考:
祝学习愉快~
相似问题
回答 2
回答 1