JS字符串去除连续或全部重复字符的实例

作者:小括号

时间:2026-10-22

浏览:313

本文介绍在JavaScript中利用正则表达式去除字符串中连续重复字符及全部重复字符的方法。通过反向引用\1匹配连续相同字符,结合replace进行去重;对全部重复字符,先排序再使用正则去重。同时提供字符串重复n次及字符串转数组的实用代码片段,帮助开发者高效处理字符串数据。

文章目录

去除连续重复字符

在JavaScript中处理字符串时,去除连续重复字符是一个常见需求。

正则表达式中的反向引用语法(如\number)用于匹配第number个括号内捕获的内容。例如,(\d)\1表示匹配第一个数字捕获组后紧跟相同的数字。若(\d)匹配到字符a,则整个表达式等价于匹配aa。

基于此原理,可以构造(some)\1*、(some)\1+或(some)\1?等模式,分别表示匹配第一个捕获组内容任意次、至少一次或一次或零次。

连续去重代码示例


  var s = "1122333455";
     var s1 = s;
     var c;
     var cc = s.match(/(\d)\1+/g);    //11,22,333,55 当然这里用()\1*也会可以(因为下面是替换):11,22,333,4,55
     for(var i = 0;i<cc.length;i++){
         c = cc[i].substring(0,1);
         s1 = s1.replace(cc[i],c);
    }
    alert(s1);   //12345

去除全部重复字符并排序

若需去除字符串中所有重复字符(无论是否连续),并保留排序后的结果,可先对字符串排序,再利用正则表达式去除重复项。

全部去重代码示例


     var s = "1234321abaccc";
     var s1 = s.split("").sort().join("");
     var cc = s1.match(/(.)\1+/g);    //11,22,33,aa,ccc 当然这里用()\1*也会可以(因为下面是替换):11,22,33,4,aa,b,ccc
     for(var i = 0;i<cc.length;i++){
         c = cc[i].substring(0,1);
         s1 = s1.replace(cc[i],c);
     }
    alert(s1);    //1234abc

此外,有时需要重复某个字符串n次,或将字符串转换为数组,以下是相关实现示例。

字符串重复与转换技巧

重复字符串n次可通过Array构造函数结合join方法实现。

重复字符串代码示例


function repeat(str , n){
return new Array(n+1).join(str);
}
console:
repeat("a", 3); //aaa

字符串转数组可利用Array.prototype.join.call配合split方法完成。

字符串转数组代码示例


var sa="ABCD";
var newStr=Array.prototype.join.call(sa); //A,B,C,D
newStr.split(','); //['A','B','C','D']

本文总结了上述JS字符串处理技巧。

上述内容为本站分享的JS字符串去除连续或全部重复字符的示例,期望能对大家有所帮助。若存在任何疑问,欢迎留言,小编将尽快回复。同时,衷心感谢各位对本站的支持!

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章