可以利用正则表达式进程获取:
var str = "abbbbbsdsdsdasdlsfj"var c = "b" // 要计算的字符
var regex = new RegExp(c, 'g') // 使用g表示整个字符串都要匹配
var result = str.match(regex)
var count = !result ? 0 : result.length
console.log(c + " 的数量为 " + count)
简单实现如下:按照代码执行就行不用调用多少方法
方法一:
<script type="text/javascript">
var str = 'caibaojian.com',obj=[]
for(var i = 0i<str.lengthi++){
var key = str[i]
if(!obj[key]){
obj[key] = 1
}else{
obj[key] ++
}
}
var max = -1
var max_key = ''
var key
for(key in obj){
if(max<obj[key]){
max=obj[key]
max_key = key
}
}
console.log(max_key+"为最多出现字符,出现的次数为"+max)
</script>
方法二:
var str ="caibaojian.com"
var arr = str.split("")
var obj = {}
var objArr = []
for(var i=0,jj=arr[i]i++){
if(!obj[j])obj[j]=0
objArr[++obj[j]]=j
}
document.write(objArr[objArr.length-1]+"=="+(objArr.length-1))
方法三:
var str ="caibaojian.com"
var maxLength = 0//命名一个变量放置字母出现的最高次数并初始化为0
var result = ''//命名一个变量放置结果输入
while( str != '' ){ //循环迭代开始,并判断字符串是否为空
oldStr = str//将原始的字符串变量赋值给新变量
getStr = str.substr(0,1)//用字符串的substr的方法得到第一个字符(首字母)
eval("str = str.replace(/"+getStr+"/g,'')")//详细如补充,也可以写成 str = str.replace(new RegExp(getStr,'g'),"")
if( oldStr.length-str.length >maxLength ) { //判断原始的字符串的长度减去替代后字符串长度是否大于之前出现的最大的字符串长度
maxLength = oldStr.length-str.length//两字符串长度相减得到最大的字符串长度
result = getStr + "=" + maxLength //返回最大的字符串结果(字母、出现次数)
}
}
document.write(result) //弹出结果