2013-10-28 125 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); 
}