方法一:
var str="aakkkbbccdaabb";
function test(str){
var newStr='';
var reg=/(\w)\1*/g;
// \1表示和第一个分组一模一样的字符;\g表示全局
str =str.match(reg);//match 返回的是一个数组
for(var i=0;i<str.length;i++){
var len=str[i].length;
newStr=newStr+str[i][0]+len;
}
console.log(newStr);
}
test(str);
方法二:
方法里边的参数解析
参数1:整个正则表达式匹配的字符(aa/kkk/bb/cc/d/aa)
参数2:第一组分配内容、第二组分配内容、第三组分配内容……以此类推
(a/k/b/c/d/a)
参数三:此次匹配在源字符串中的下标(位置)(0\2\5\7\9\10\12)
参数四:源字符串(aakkkbbccdaabb)
var str="aakkkbbccdaabb"
var reg=/(\w)\1*/g;
var s=str.replace(reg, function ($0,$1,$3,$4){
return $1+$0.length;
});
console.log(s);
输出结果均为:a2k3b2c2d1a2;