2013-10-28 165 views
0

如何在Node.js中識別字符串是否是有效數字?識別node.js中字符串的數字

這裏有我想要的一些例子:

"22"  => true 
"- 22" => true 
"-22.23" => true 
"22a" => false 
"2a2" => false 
"a22" => false 
"22 asd" => false 

我不實際需要返回「真」或「假」,但我需要一個明確的方式來區分它們。這似乎是在node.js中可用isNaN心不是...

回答

0

isNaN()是絕對可用node.js中

!isNaN(+n)

一元加號運算符是我個人的選擇;將無法獲得您的"- 22"示例,但您可以使用!isNaN(+n.replace(/\s/g, "")去掉空格。

+0

您是對的。我不知道爲什麼它不工作之前...謝謝! –

+0

沒問題。應該注意的是,javascript認爲'+「」'和'+ []'是0。所以這個解決方案並沒有在你扔到最好的垃圾之下。 – cjohn

0

我使用的方法提出in this answer

function isNumber(n) { 
    return !isNaN(parseFloat(n)) && isFinite(n); 
} 
+0

'isNaN'不適用於nodejs –

0

您可以使用正則表達式,例如:

function is_number(n) { 
    return (/^-?\d[0-9.e]*$/).test(n); 
}