如果字符串是一个精确的数字,如何将其转换为float,而不仅仅是从javascript中的数字开始
我正在尝试生成检查字符串的函数。如果字符串是number,那么它将把它转换为float。否则,它将保持原样 例如:我有以下测试字符串:如果字符串是一个精确的数字,如何将其转换为float,而不仅仅是从javascript中的数字开始,javascript,Javascript,我正在尝试生成检查字符串的函数。如果字符串是number,那么它将把它转换为float。否则,它将保持原样 例如:我有以下测试字符串: "123" => 123 "12.3" => 12.3 "12.300" => 12.3 "test123" => "test123" "123test" => "123test" "
"123" => 123
"12.3" => 12.3
"12.300" => 12.3
"test123" => "test123"
"123test" => "123test"
"12.3test" => "12.3test"
"123@123.123" => "123@123.123"
我试着按照下面写的那样自己制作,但有时它会通过删除字母并保留字符串数字的第一部分,将真正的字符串转换为数字
let mynumber="123test@gmail.com"
mynumber = parseFloat(mynumber) ? parseFloat(mynumber) : mynumber;
//output: 123
您可以使用
number()
将字符串转换为数字,并检查其是否为NaN
功能检查(num){
返回isNaN(Number(num))?num:Number(num);
}
让我的号码=”123test@gmail.com"
让mynumber2=“34234”;
让mynumber3=“3234.234”;
让结果=检查(mynumber);
让结果2=检查(mynumber2);
让结果3=检查(mynumber3);
console.log(结果、结果类型);
console.log(result2,类型result2);
console.log(result3,result3的类型)代码>将代码更改为如下所示
let mynumber="123test@gmail.com"
mynumber = isNaN(mynumber)?mynumber:parseFloat(mynumber)
这里isNaN将检查有效数字您可以使用isNaN
检查参数是否为NaN
let mynumber="123test@gmail.com"
isNaN(mynumber)
//output: true
let mynumber="123.123"
isNaN(mynumber)
//output: false
只需在任何字符串之前添加+符号,即可将其转换为数字
var a = "10.25";
console.log( +a );
输出:10.25对于问题中显示的大多数输入/输出,这将失败。已测试。很好。谢谢你的回答很好。请让我知道在isNaN()中使用数字的条件,isNaN(数字(num))@MuhammadUmarFarooq实际上。。。您不需要在条件语句中使用Number()