去除字符串中连续重复字符的两种方法
一、使用正则表达式
quChong("111222333555");
function quChong(str){
let arr=[];
let obj=str.match(/(\d)\1*/g);//这里以数字为例
for(let i=0;i<obj.length;i++){
let newArr=obj[i].split("");
arr.push(newArr[0]);
}
let s0=arr.toString().replace(/,/g,"");
console.log(s0);
}//输出1235
这种方法首先匹配到连续重复的字符(在本例中是111,222,333,555),再将每一项分割成单独的所需的项;
二、利用数组
function removeRepetition(str) {
let result = "", //空的结果
strA =str.split(""), //将字符串进行分割,变成数组
strB = [], //创建空的字符串
j=0;
for(let i=0;i<strA.length;i++){ //对分割好,已变成数组的字符串A进行循环
if(strA[i] !=strB[j]){ //判断循环到的A的元素和B的最后一位元素是否相等(因为B是一个空数组)
j++; //j一定要先加1
strB[j]=strA[i];
}
}
result=(strB.toString()).replace(/,/g,"");
return result;
}
console.log(removeRepetition("aabbvvaa"));//输出abva
这里是先将字符串分割,进行判断后再依次加入到一个新数组当中;