今天检查js脚本的时候,发现一个正则匹配中出现了 /g.exec 死循环,所以查了一下网上的原因,是因为把正则匹配放在了循环体中,导致每一次都是新的匹配,所以死循环
原来的代码:
while(true){
var result = /\s+\d+/g.exec(a);
if (result) {
//TODO
}
else{
break;
}
}
修改后:
var reg = /\s+\d+/g
while(true){
var result = reg.exec(a);
if (result) {
//TODO
}
else{
break;
}
}
把正则表达式提出到循环体外就解决了,mark一下