我正在尝试创建检查字符串的函数。如果字符串是数字,那么它会将其转换为 float 。否则,它将保持原样。
例如:我有这些测试字符串:
"123" => 123
"12.3" => 12.3
"12.300" => 12.3
"test123" => "test123"
"123test" => "123test"
"12.3test" => "12.3test"
"<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="69585b5a29585b5a47585b5a" rel="noreferrer noopener nofollow">[email protected]</a>" => "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="d4e5e6e794e5e6e7fae5e6e7" rel="noreferrer noopener nofollow">[email protected]</a>"
我尝试自己制作如下所示的内容,但有时它会通过删除字母并保留字符串数字的第一部分来将真实字符串转换为数字
let mynumber="<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="78494a4b0c1d0b0c381f15191114561b1715" rel="noreferrer noopener nofollow">[email protected]</a>"
mynumber = parseFloat(mynumber) ? parseFloat(mynumber) : mynumber;
//output: 123
最佳答案
您可以使用 Number()
将字符串转换为数字,并检查其是否为 NaN。
function check(num){
return isNaN(Number(num)) ? num : Number(num);
}
let mynumber="<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="1d2c2f2e69786e695d7a707c7471337e7270" rel="noreferrer noopener nofollow">[email protected]</a>"
let mynumber2 = "34234";
let mynumber3 = "3234.234";
let result = check(mynumber);
let result2 = check(mynumber2);
let result3 = check(mynumber3);
console.log(result, typeof result);
console.log(result2, typeof result2);
console.log(result3, typeof result3);
关于javascript - 如果它是一个精确的数字,如何将字符串转换为 float ,而不仅仅是在javascript中以数字开头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62568464/