轉自:https://www.cnblogs.com/mountain-mist/articles/1601001.html
JS 中如何判斷字符串類型的數字
"23" 這樣的字符串是可以轉換成數字類型的,但如何判斷它可以轉換呢?
以下是不正確的用法:
var str = "37";
if (typeof(str) == "number")
{
alert("是數字");
}
if (typeof(str) == "number")
{
alert("是數字");
}
37 雖然可以轉化成數字,但這里它畢竟是字符串類型,所以此法不正確。
var str = "37";
var n = parseInt(str);
if (!isNaN(n))
{
alert("是數字");
}
var n = parseInt(str);
if (!isNaN(n))
{
alert("是數字");
}
parseInt 會將字符串轉化成整數,但它會忽略非數字部分而不給任何提示,比如:"37ABC" 會轉化成 37,所以此法不正確。
以下是正確的用法:
var str = "37";
var n = Number(str);
if (!isNaN(n))
{
alert("是數字");
}
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)