正則表達(dá)式,match()與parseInt()一起用帶來的問題
?//成績(jī)是一長(zhǎng)竄的字符串不好處理,找規(guī)律后分割放到數(shù)組里更好操作哦
? 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);*/
? }
以上代碼結(jié)果為:87 81 97 76 74 94 90 76 64 76
如果把注釋去掉,結(jié)果變成了:
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á)式'(\\d{0,2}|100)','\g')使得所有的字符都被當(dāng)做數(shù)字篩選了出來,只不過字符被當(dāng)做數(shù)字時(shí)存為了NaN,用顯示字符串的方法時(shí)不顯示出來,而用parseInt()方法時(shí)就有顯示,可以用console.log()在控制臺(tái)直觀的看一下,另外|100這個(gè)東西在正則表達(dá)式?jīng)]用,我的正則表達(dá)式寫法:/\d+/g ?簡(jiǎn)單好用
2017-08-07
parseInt("漢字")