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

<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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值