您的位置:首页 > 其它

在字符串中筛选出数字字符而发现的若干问题

2016-10-11 09:52 253 查看
问题:现有一个字符串abc234efghi.(1)将此字符串中的数字换成[2][3][4]的形式,并输出字符串;

解析:

分析:此处的易错点在于从一串包含数字的字符串中找出数字来是不能直接typeof parseInt(s)的,原因是parseInt()后非数字字符返回NaN,数字字符则返回数字本身,而typeof NaN和typeof 数字,得到的都是number,也不能用是否等于NaN来判断,因为NaN和数字都不等于NaN,所以此处要用isNaN()来分辨出NaN和数字,即非数字字符和数字。(这些是我在chrome下的到的结果,其实有点疑惑,NaN不是代表非数值吗,为何typeof后得到的是number,后续得到答案后再补上说明。)

这里写代码片


function change(s){

s=s.split("");//转换成数组操作

var len=s.length;

for(var i=0;i<len;i++){

if(!isNaN(parseInt(s[i]))){

/*parseInt()后非数字则返回NaN,注意此处不能

用是否等于NaN判断,因为数字与NaN都不等于NaN,

也不能用typeof,NaN和数字都返回number*/

s.splice(i,1,"["+s[i]+"]");

}

}

s=s.join("");//恢复成字符串

alert(s);

}

var t="abc234efghi";

change(t);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  字符串-数字
相关文章推荐