通过正则表达式,从一个随机的字符串中获取重复最多的额字符及其数量
//首先声明定义一个随机的字符串
var str = 'hgldsfkjhgkejhgkjg4654dfhghjf45gfgdrg4GJHGJK5dzfdf241b35sf';
//1.将每一个字符切割为数组
var arrStr = str.split('');
//2.对字符数据进行排序
arrStr = arrStr.sort();
//3.将排好序的字符数据组装成字符串
str = arrStr.join('');
var result = ''; //返回最多的字母
var count = 0; //计数器
//4.捕获组——正则表达式中表达式匹配的内容,
//保存到内存中以数字的编号或显式命名的组里,方便后面引用
var reg = /(\w)\1+/gi; //捕获组
//用replace来获取最多的字符数
str.replace(reg, function($0, $1) { //集合:$0代表连接字符组成的字符串,$1代表连续字符串中第一个首字母
if (count < $0.length) {
result = $1;
count = $0.length;
}
})
console.log("字符最多的是: " + result + " ,有 " + count + " 个");
捕获组的概念:正确使用正则表达式的捕获组和非捕获组