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)

posted @ 2016-07-13 12:57  rysinal  阅读(299)  评论(0编辑  收藏  举报