<script>
//统计一个字符串中出现次数最多的字符
function maxCountSubstr(str) {
//打散排序
str = str.split("").sort();
//重新组成字符串
str = str.join("").trim();
//\1 引用的是第一个代括号的子表达式
var arr = str.match(/([A-Za-z])\1*/g);
var count = 0;
var char = "";
for(var i=0;i<arr.length;i++){
if(arr[i].length > count){
count = arr[i].length;
char = arr[i];
}
}
console.log("出现次数最多的字符:" + char[0]);
console.log("出现的次数:" + count);
}
var str = "sdatgdgdfsshg";
maxCountSubstr(str);
str = "gggggggggdfffddasdgf";
maxCountSubstr(str);
对\1的尝试:
<script>
var str = "aaaabbbbffff";
var arr = str.match(/[A-Za-z]/g);
console.log(arr); //["a", "a", "a", "a", "b", "b", "b", "b", "f", "f", "f", "f"]
arr = str.match(/[A-Za-z]*/g);
console.log(arr); //["aaaabbbbffff", ""]
arr = str.match(/([A-Za-z])*/g); //
console.log(arr); //["aaaabbbbffff", ""]
arr = str.match(/([A-Za-z])\1*/g); // \1 引用的是第一个代括号的子表达式
console.log(arr); //["aaaa", "bbbb", "ffff"]
</script>
match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。
对\2的尝试:
var str = "aabbbccccdd";
var arr = str.match(/([a-b])([A-Za-z])\2*/g);
console.log(arr); //["aa", "bbb"]
arr = str.match(/([a-z])([A-Za-z])\2*/g);
console.log(arr); //["aa", "bbb", "cccc", "dd"]
arr = str.match(/([a-z])([A-Za-z])\1*/g);
console.log(arr);//["aa", "bbb", "cccc", "dd"]
arr = str.match(/([a-b])([A-Za-z])\1*/g);
console.log(arr);//["aa", "bbb"]
总结:\1指分组1,\2指分组2