gpt4 book ai didi

javascript - 从字符串中解析数字并检测哪个字符串是数字

转载 作者:行者123 更新时间:2023-11-28 13:09:49 25 4
gpt4 key购买 nike

我有一个脚本,当字符串实际上是数字时,它应该将字符串转换为数字。

首先我尝试了isNumber(x),但它不适用于看起来像数字但实际上不是数字的字符串,例如带前导零的协议(protocol)号“035859”:

   if (isNumber('035859')) {
parseFloat('035859'); //35859
}

接下来我尝试在解析后解析和比较字符串,但遇到了相反的问题 - 有些数字未被识别为数字

 if (parseFloat('2.00').toString() == '2.00') //false

我应该怎么做才能找到所有数字,但跳过所有字符串?可能是熟悉全局方法而无需对所有可能的异常进行编码的人?

最佳答案

如果输入字符串无法转换为数字,

parseFloatparseInt 都会返回 NaN。您可以使用 isNaN 函数测试 NaN:

var number = parseFloat( input );
if( isNaN( number ) {
// not a number
}
else {
// is a number
}

还有 Infinity 的特殊情况,您可能也想测试一下:

var number = parseFloat( input );
if( !isNaN( number ) && isFinite( number ) ) {
// is a number that is not infinity:


}

您可以通过拥有自己的简单包装函数来节省麻烦,该函数在失败时返回 null:

function getNumber( input ) {

var number = parseFloat( input );
if( !isNaN( number ) && isFinite( number ) ) return number;
return null;
}

像这样使用:

var number = getNumber( input );
if( number != null ) {
// do stuff
}

关于javascript - 从字符串中解析数字并检测哪个字符串是数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43377528/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com