如何在Node.js中识别字符串是否是有效数字?识别node.js中字符串的数字
这里有我想要的一些例子:
"22" => true
"- 22" => true
"-22.23" => true
"22a" => false
"2a2" => false
"a22" => false
"22 asd" => false
我不实际需要返回“真”或“假”,但我需要一个明确的方式来区分它们。这似乎是在node.js中可用isNaN心不是...
如何在Node.js中识别字符串是否是有效数字?识别node.js中字符串的数字
这里有我想要的一些例子:
"22" => true
"- 22" => true
"-22.23" => true
"22a" => false
"2a2" => false
"a22" => false
"22 asd" => false
我不实际需要返回“真”或“假”,但我需要一个明确的方式来区分它们。这似乎是在node.js中可用isNaN心不是...
isNaN()
是绝对可用node.js中
!isNaN(+n)
一元加号运算符是我个人的选择;将无法获得您的"- 22"
示例,但您可以使用!isNaN(+n.replace(/\s/g, "")
去掉空格。
我使用的方法提出in this answer:
function isNumber(n) {
return !isNaN(parseFloat(n)) && isFinite(n);
}
'isNaN'不适用于nodejs –
您可以使用正则表达式,例如:
function is_number(n) {
return (/^-?\d[0-9.e]*$/).test(n);
}
您是对的。我不知道为什么它不工作之前...谢谢! –
没问题。应该注意的是,javascript认为'+“”'和'+ []'是0。所以这个解决方案并没有在你扔到最好的垃圾之下。 – cjohn