js字符串去重

使用正则去重

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

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。