/**
写一个方法,提取字符串的数字字符组合的数组
**/
let str = "520$qqq13we14d2331";
function f(str){
let res = []; //接收数字的数组
for(let i=0;i<str.length;i++){
let x = str.charAt(i);
if(parseInt(x)==x){
res.push(x);
}
}
return res;
}
console.log(f(str));
// [5,2,0,1,3,1,4,2,3,3,1]
// 是数字先不push先拼接,不是数字字符再push
function f2(str){
let tmp = ""; //准备拼接的字符串
let res = []; //接收数字的数组
for(let i=0;i<str.length;i++){
let x = str.charAt(i);
if(parseInt(x)==x){
tmp += x;
}else{
tmp&&res.push(tmp); //push的前提是字符换存在
tmp = "";
}
}
tmp&&res.push(tmp); //最后一步再检测一次
return res;
}
console.log(f2(str));
//换成正则表达式,非常简洁
function f3(str){
return str.match(/\d+/g);
}
console.log(f3(str));
console