如果字符串是一个精确的数字,如何将其转换为float,而不仅仅是从javascript中的数字开始

如果字符串是一个精确的数字,如何将其转换为float,而不仅仅是从javascript中的数字开始,javascript,Javascript,我正在尝试生成检查字符串的函数。如果字符串是number,那么它将把它转换为float。否则,它将保持原样 例如:我有以下测试字符串: "123" => 123 "12.3" => 12.3 "12.300" => 12.3 "test123" => "test123" "123test" => "123test" "

我正在尝试生成检查字符串的函数。如果字符串是number,那么它将把它转换为float。否则,它将保持原样

例如:我有以下测试字符串:

"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()