cin_cout
2017-08-07 18:54
//成绩是一长窜的字符串不好处理,找规律后分割放到数组里更好操作哦
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
为什么???
你的正则表达式'(\\d{0,2}|100)','\g')使得所有的字符都被当做数字筛选了出来,只不过字符被当做数字时存为了NaN,用显示字符串的方法时不显示出来,而用parseInt()方法时就有显示,可以用console.log()在控制台直观的看一下,另外|100这个东西在正则表达式没用,我的正则表达式写法:/\d+/g 简单好用
parseInt("汉字")
JavaScript进阶篇
468060 学习 · 21891 问题
相似问题