正則表達式,match()與parseInt()一起用帶來的問題
?//成績是一長竄的字符串不好處理,找規律后分割放到數組里更好操作哦
? var scoreStr = "小明:87;小花:81;小紅:97;小天:76;小張:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";
? var reg1 = new RegExp('(\\d{0,2}|100)','\g');
??
? var scoreArr = scoreStr.match(reg1);
??
? var sum = 0;
??
? for(var i = 0; i < scoreArr.length; i++){
? ? ? document.write(scoreArr[i] + " ");
? ? ? /*var x = parseInt(scoreArr[i]); //error
? ? ? document.write(x);*/
? }
以上代碼結果為:87 81 97 76 74 94 90 76 64 76
如果把注釋去掉,結果變成了:
NaN NaN NaN87 87 NaN NaN NaN NaN81 81 NaN NaN NaN NaN97 97 NaN NaN NaN NaN76 76 NaN NaN NaN NaN74 74 NaN NaN NaN NaN94 94 NaN NaN NaN NaN90 90 NaN NaN NaN NaN76 76 NaN NaN NaN NaN64 64 NaN NaN NaN NaN76 76?
為什么???
2017-08-30
你的正則表達式'(\\d{0,2}|100)','\g')使得所有的字符都被當做數字篩選了出來,只不過字符被當做數字時存為了NaN,用顯示字符串的方法時不顯示出來,而用parseInt()方法時就有顯示,可以用console.log()在控制臺直觀的看一下,另外|100這個東西在正則表達式沒用,我的正則表達式寫法:/\d+/g ?簡單好用
2017-08-07
parseInt("漢字")