方法一. 用对象集合存储不同字符集合,再比较字符集合的长度

var string = "dhsjakaaaaaaaaaaaaaaaaaaaaaaaaaFHDSJAKLFHKADSdhsjahdueiyfjshfjxbczkfh";

function max(str) {
    var obj = {};
    // 将字符串中的相同字符写入同一个obj下的属性中,并用str[]数组存储
    for(var i = 0; i < str.length; i++) {
        if( !obj[str[i]] ) {
            obj[str[i]] = [];
        }
        obj[str[i]].push( str[i] );
    }
    // 声明obj的长度
    var num = 0;
    var value = "";
        // 获取最大长度相同字符集合
    for(var attr in obj) {
        if(num < obj[attr].length) {
            num = obj[attr].length;
            value = obj[attr][0];
        }
    }
    var info = "出现次数最多的字符为 : " + value + ", 出现次数为 :" + num;
    return info;
}

alert(max(string)); // 出现次数最多的字符为 : a, 出现次数为 :27

方法二. 使用正则表达式匹配

var string = "dhsjakaaaaaaaaaaaaaaaaaaaaaaaaaFHDSJAKLFHKADSdhsjahdueiyfjshfjxbczkfh";

function max(str) {
    var num = 0;//出现次数 
    var value = ""// 出现最多次数的值 
    var re = /(\w)\1+/g;
    var new_str = str.split("").sort().join(""); 
    new_str.replace(re, function($0, $1){
        if(num<$0.length){ 
           num = $0.length; 
           value = $1;
        } 
    }) 

    var info = "出现次数最多的字符为 : " + value + ", 出现次数为 :" + num;
    return info;
}

alert(max(string)); // 出现次数最多的字符为 : a, 出现次数为 :27
本文作者:子匠_Zijor,转载请注明出处:http://www.dengzhr.com/js/104