JS 中如何判断字符串类型的数字
“23” 这样的字符串是可以转换成数字类型的,但如何判断它可以转换呢?
以下是不正确的用法:
1. typeof
var str = "37";
if (typeof(str) == "number") {
alert("是数字");
}
37 虽然可以转化成数字,但这里它毕竟是字符串类型,所以此法不正确。
2. parseInt+isNaN
var str = "37";
var n = parseInt(str);
if (!isNaN(n)) {
alert("是数字");
}
parseInt 会将字符串转化成整数,但它会忽略非数字部分而不给任何提示,比如:”37ABC” 会转化成 37,所以此法不正确。
以下是正确的用法:
3. 正确用法 Number+isNaN
var str = "37";
var n = Number(str);
if (!isNaN(n)) {
alert("是数字");
}
注意:在 JavaScript 中,对于省略写法(如:”.3”、”-.3”)、科学计数法(如:”3e7”、”3e-7”)、十六进制数(如:”0xFF”、”0x3e7”)均被认定为数字格式,这类字符串都可以用 Number 转化成数字。
isNaN 返回一个 Boolean 值,指明提供的值是否是 NaN ,NaN 的意思是 not a number(不是一个数字)。
语法:isNaN(numValue)