javascript - 如果它是一个精确的数字,如何将字符串转换为浮点数,而不仅仅是以javascript中的数字开头
问题描述
我正在尝试制作检查字符串的功能。如果字符串是数字,那么它会将其转换为浮点数。否则,它将保持原样。
例如:我有这些测试字符串:
"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。
function check(num){
return isNaN(Number(num)) ? num : Number(num);
}
let mynumber="123test@gmail.com"
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);
推荐阅读
- r - 基于动态列名选择的数据框子集不正确
- javascript - 我如何为自己的小部件创建 reCAPTCHA
- css - 菜单在移动视图上消失
- python - 打印匹配列表元素的索引
- flutter - 数字海洋上的颤动
- ssh - 远程 shell 命令作业无法解析 Azure 发布管道中的主机名
- java - 必填字段的 Json 请求验证 - springboot rest-api
- azure - 没有 IP 地址的虚拟网络中容器组之间的网络连接
- angular - 嵌套的 ngx-bootstrap 模态:回调函数订阅 onHidden 的问题
- text - 在 SwiftUI 中减少文本的行距