isNaN函数方式

// NaN的意思:not a number
function isRealNum(val){
    // isNaN()函数 把空串 空格 以及NUll 按照0来处理 所以先去除
    if(val === "" || val == null){
        return false;
    }
    if(!isNaN(val)){
        return true;
    }else{
        return false;
    }
}

// isNaN() 是一个全局方法,它的作用是检查一个值是否能被 Number() 成功转换为数字。
// 当一个字符串不能被 Number、parseInt 或 parseFloat 成功转换时,就返回 NaN,表示该字符串无法被识别为数字类型,这是一个异常状态,并不是一个确切的值。
// NaN不等于NaN。

Number('12abc'); // NaN
'123'; // 123
'123.78'; // 123.78
'abc'; // NaN
Number([]); //0

parseInt('12ab3'); //12

//Number 转换的是整个值,而不是部分值;parseInt 和 parseFloat 只转化第一个无效字符之前的字符串。

NaN!==NaN; // true

isNaN('a'); //true
isNaN('1'); //false
isNaN('12a'); //true

parseFloat方法

function isNotANumber(inputData) {
  //isNaN(inputData)不能判断空串或一个空格
  //如果是一个空串或是一个空格,而isNaN是做为数字0进行处理的,而parseInt与parseFloat是返回一个错误消息,这个isNaN检查不严密而导致的。
  if (parseFloat(inputData).toString() == “NaN”) {
    //alert(“请输入数字……”);
    return false;
  } else {
    return true;
  }
}

parseFloat与parseInt处理字符串

console.log( parseInt("asd123")); //parseInt 值为字符串 如已字符串开头 返回NaN
console.log( parseInt("123asd")); //parseInt 值为字符串 如已数字开头 返回数字(123)
// parseFloat 与 parseInt 同理
console.log(parseInt("asd123")==NaN); //NaN和任何值都不相等 包括自己 返回 false
console.log(typeof(parseInt("asd123")); // NaN 类型为number 
12-17 03:24
查看更多