区分数字、带引号数字、和其他符号(包括空格,null,undefined等)的方法
(练习FCC-Validate US Telephone Numbers时碰到问题,总结的解决方法)
方法1:利用%求余。 可以区分数字(带引号数字)和其他字符串,但无法区分空格,null
2%1==0;
"2"%1==0;
" "%1==0;
null%1==0;
undefined%1==NaN
"a"%1==NaN
方法2:isNaN(x);如果 x 是特殊的非数字值 NaN(或者能被转换为这样的值),返回的值就是 true。如果 x 是其他值(包括数字,引号包裹的数字”2”,空格” “,null),则返回 false。
isNaN(" ") false
isNaN(null) false
isNaN(NaN) true
isNaN(undefined) true
isNaN(2) false
isNaN("2") false
方法3:自建函数。可以直接确定数字,可以区分1和{“1”,null,空格,undefined,字符串},无法区别NaN
function isNumber(x){
return typeof x === 'number';}
扩展:
1.parseInt() 可以将任何东西转化为整数格式
2.可以用split(” “) 和join(“”),再用split(“”),去除空格