JS去除重复字符串

本文介绍两种JavaScript字符串去重的方法:一种是通过数组操作实现,另一种是利用正则表达式匹配重复字符并移除。详细解释了每种方法的实现原理及步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

方法一:
   通常就是把字符串分割成数组,再对数组操作。
   
    var str ="aabdeegdcffdsf",
       result = [],
       tempStr = "";
    var removeDuplicate =function ( str ){
       var arr = str.split('');//把字符串分割成数组
       //arr.sort();//排序
       for(var i = 0; i < arr.length;i++){
           if(arr[i]!== tempStr){
              result.push(arr[i]);
              tempStr = arr[i];
          }else{
              continue;
           }
       }
       return result.join("");
    }
   console.log(removeDuplicate(str)); //abdegdcfdsf

方法二:

    var removeDuplicate2 =function(str){
       var reg = /(.)(?=.*\1)/g;
       var result = str.replace(reg, "");
       return result;
    }
   console.log(removeDuplicate(str)); //abdegdcfdsf
    说明:
       1、var reg =/(.)(?=.*\1)/g;
       2、.匹配任意字符,但只能匹配任意字符中的一个;
       3、(.)加上()就是将匹配的该字符存储起来供以后引用;
      4、(?=)预搜索(也有叫断言的,也有叫预查的),指明某个字符的右侧是什么,但不包含这部分,只取这个‘某个字符’,如:p(?=ing)匹配字符串ping时匹配成功,但匹配到的字符是p不是ping;
       5、(?=.*\1)这个\1就是指的前面(.)的这个字符,之前说它被加上小括号就是被存储起来了,现在\1就是取存储的第一个(共一个):
          *匹配次数,也有人称之为量词,指出现任意次
          .*指出现任意次任意字符
      6、(.)(?=.*\1)指第一个匹配字符,如果右侧出现的内容中包含该字符时就匹配上该字符;
       7、 g指globle,全局匹配模式,匹配所有字符串;
      8、这个去重的结果其实是倒着来排序的,就是说重复字符出现在前面的都被置空了,是按一个字符从后往前出现的顺序排的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值