JS 中如何正确的判断一个字符串是数字

223 阅读1分钟

不正确用法

1. parseInt+isNaN
var str = "37";
var n = parseInt(str);
if (!isNaN(n)) {
   alert("是数字");
}

parseInt 会将字符串转化成整数,但它会忽略非数字部分而不给任何提示,比如:”37ABC” 会转化成 37,所以此法不正确。

2. Number+isNaN
var str = "37";
var n = Number(str);
if (!isNaN(n)) {
    alert("是数字");
}

Number这个方法会对空数组失效,Number([])会转换成0

正确用法 typeof+Number+isNaN

if(typeof changeValue === 'string' && !isNaN(Number(changeValue))) {
	changeValue = parseInt(changeValue);
}