0

我如何在 Node.js 中识别字符串是否为有效数字?

以下是我想要的一些示例:

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

我实际上不需要返回“true”或“false”,但我需要一种明确的方式来区分它们。似乎 isNaN 在 node.js 中不可用...

4

3 回答 3

0

我使用此答案中建议的方法:

function isNumber(n) {
  return !isNaN(parseFloat(n)) && isFinite(n);
}
于 2013-10-28T23:06:17.633 回答
0

例如,您可以使用正则表达式:

function is_number(n) {
   return (/^-?\d[0-9.e]*$/).test(n);
}
于 2013-10-28T23:07:02.647 回答
0

isNaN()在 node.js 中绝对可用。

!isNaN(+n)

一元加运算符是我个人的选择;不会抓住你的"- 22"例子,但你可以!isNaN(+n.replace(/\s/g, "")用来去除空格。

于 2013-10-28T23:20:17.387 回答