直接上代码
//半角
function countBanJiao(str) {
return countArr(str.match(/[\u0000-\u00ff]/g));
}
//全角
function countQuanJiao(str) {
return countArr(str.match(/[\uff00-\uffff]/g));
}
//汉字
function countHanZi(str) {
return countArr(str.match(/[\u4e00-\u9fa5]/g));
}
function countArr(arr) {
return arr == null ? 0 : arr.length;
}
var banjiao = countBanJiao(str);
var quanjiao = countQuanJiao(str);
var hanzi = countHanZi(str);
return banjiao + (quanjiao + hanzi) * 2