如果我不知道字符串值是否为有效数字,如何将字符串转换为数字。如果字符串无效,我想保留该字符串。
示例
"0" -> 0
"0.5" -> 0.5
"100" -> 100
"abc" -> "abc" // remains a string
" " -> " " // remains an empty string
"-1" -> -1 // I'd like to convert negative numbers too
我试过了
var str = " ";
var num = +str // num = 0
var num = Number(str) // num = 0
var num = parseInt(str) // num = NaN
看来我的问题是空间问题。我正在考虑使用 parseInt
但我认为使用 NaN
作为 Javascript 中的值可能不是一个好主意并且只保留字符串会更好。
最佳答案
您可以检查字符串数值是否等于该值。
var array = ["0", "0.5", "100", "abc", " "];
console.log(array.map(a => (+a).toString() === a ? +a : a));
.as-console-wrapper { max-height: 100% !important; top: 0; }
关于Javascript 仅当字符串是数字时才将字符串转换为数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44258536/