今天檢查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一下