您的位置:首页 > Web前端 > JavaScript

JS——统计字符串中出现次数最多的字符

2017-11-16 13:02 423 查看
<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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: