亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

正則表達式,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?

為什么???


正在回答

2 回答

你的正則表達式'(\\d{0,2}|100)','\g')使得所有的字符都被當做數字篩選了出來,只不過字符被當做數字時存為了NaN,用顯示字符串的方法時不顯示出來,而用parseInt()方法時就有顯示,可以用console.log()在控制臺直觀的看一下,另外|100這個東西在正則表達式沒用,我的正則表達式寫法:/\d+/g ?簡單好用

1 回復 有任何疑惑可以回復我~
#1

cin_cout 提問者

非常感謝!
2017-09-03 回復 有任何疑惑可以回復我~

parseInt("漢字")

0 回復 有任何疑惑可以回復我~
#1

cin_cout 提問者

match()不是把數字截取出來嗎?為什么還會有漢字?
2017-08-08 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

正則表達式,match()與parseInt()一起用帶來的問題

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號