[ js ] 字符串中提取数字
强制类型转换
适用于要提取的数字在字符串的前端.
let str = "1412.123abd"
console.log(parseInt(str),parseFloat(str)); // 输出1412 1412.123
遍历拼接
缺点:获取所有的数字,即使是不需要的数字段也会被拼接. 这里是用parseInt(i)>=0
判断是否为数字,若使用isNaN()
,会把空字符串和空格当做0处理.
let str="%1086143iluhugufu086";
let num="";
for(i of str){
if(parseInt(i)>=0){ //parseInt返回的是数字或者NAN,只要大于0,即使数字
num += i;
}
}
console.log(num); // 1086143086 会拼接所以的数字
正则表达式
let str ="%1086143iluhugufu086";
let num= str.replace(/[^0-9]/ig,"");
let numArr = str.match(/\d+/g);
let decimalArr = str.match(/\d+\.\d+/g); // 匹配小数
console.log(num); // 1086143086
console.log(numArr); // [ '1086143', '086' ]
console.log(decimalArr); // ["123.456", "456.789"]