字符串提去数字的个数
发布于 5 年前 作者 quanpf2481 2052 次浏览 来自 问答

给出一个字符串,比如,‘45679912151421’,在这个字符串里计算在3~20之间的数字的个数,结果应该是4,5,6,7,9,9,12,15,14,这9个数字,应该怎么用node js来实现呢???

5 回复

循环字符串 大于 3 直接输出 等于 1 则直接合并下一位,输出 i++ 等于 2 则判断一下一位是否位为 0。为 0 输出20 i++

伪代码
const str = ‘45679912151421’;
for (var i = 0; i < str.length; i++) {
	if(str[i] > 3) {
	console.log(str[i] );
	} else if(str[i] == 1) {
		if(i+1 < str.length) {
			 console.log(str[i],str[i+1] )
			 i++;
		}else{
		console.log(str[i] )
		}
	}else if(str[i] == 2) {
		if(str[i+1] == 0){
			 console.log(str[i],str[i+1] )
			 i++;
		}	
	}
}
function rangeNum(str, min, max) {
    const result = [];
    let cur = 0;
    for (let i = 0; i < str.length; i++) {
        const c = str[i];
        const v = c - '0';
        const next = cur * 10 + v;
        if (next > max || next < min) {
            result.push(cur);
            cur = v;
        } else {
            cur = next;
        }
    }
    return result;
}

字符串里面数字怎么比大小, 数字是几位的

const str = '45679912151421'
const reg = /1\d|20|[3-9]/g
const result = str.match(reg) || []
console.log(result)
'45' 是 45 还是4和5
回到顶部