我如何在 Node.js 中识别字符串是否为有效数字?
以下是我想要的一些示例:
"22" => true
"- 22" => true
"-22.23" => true
"22a" => false
"2a2" => false
"a22" => false
"22 asd" => false
我实际上不需要返回“true”或“false”,但我需要一种明确的方式来区分它们。似乎 isNaN 在 node.js 中不可用...
我如何在 Node.js 中识别字符串是否为有效数字?
以下是我想要的一些示例:
"22" => true
"- 22" => true
"-22.23" => true
"22a" => false
"2a2" => false
"a22" => false
"22 asd" => false
我实际上不需要返回“true”或“false”,但我需要一种明确的方式来区分它们。似乎 isNaN 在 node.js 中不可用...
我使用此答案中建议的方法:
function isNumber(n) {
return !isNaN(parseFloat(n)) && isFinite(n);
}
例如,您可以使用正则表达式:
function is_number(n) {
return (/^-?\d[0-9.e]*$/).test(n);
}
isNaN()
在 node.js 中绝对可用。
!isNaN(+n)
一元加运算符是我个人的选择;不会抓住你的"- 22"
例子,但你可以!isNaN(+n.replace(/\s/g, "")
用来去除空格。