【exec】g.exec 死循環

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章