js统计字符串中汉字、数字、字母、符号个数

如何用js统计字符串中字符个数,所占字节数,包含的汉字个数、数字个数、字母个数、标点符号个数?

首先去掉一些不需要统计的符号

let text = document.getElementById('input').value;
// 去掉换行符
text = text.replace(/[\r\n]/g,""); 
// 如果不需要统计制表符
// text= text.replace(/[\t]/g,"");
// 如果不需要统计空格
// text= text.replace(/[ ]/g,"");

字符个数统计比较简单

let count = text.length;

统计所占字节数

function getByteCount(str) {
  var trim=function(strings){
    return (strings||"").replace(/^(\s|\u00A0)+|(\s|\u00A0)+$/g,"");//+表示匹配一次或多次,|表示或者,\s和\u00A0匹配空白字符,/^以……开头,$以……结尾,/g全局匹配,/i忽略大小写
  }

  let _str = trim(str);  //去除字符串的左右两边空格
  var strlength = _str.length;
  if(!strlength) {  //如果字符串长度为零,返回零
    return 0;
  }

  var chinese=_str.match(/[\u4e00-\u9fa5]/g); //匹配中文,match返回包含中文的数组
  return strlength+(chinese?chinese.length:0); //计算字符个数
}
let count = getByteCount(text);

统计汉字、数字、符号等个数

function getCount(str,reg) {
  let count = 0;
  if (str.match(reg) != null) {
    count = str.match(reg).length;
  }
  return count;
}

let reg = /[\u4e00-\u9fa5]/g; // 统计汉字
let reg = /\d/g; // 统计数字
let reg = /[\u3002|\uff1f|\uff01|\uff0c|\u3001|\uff1b|\uff1a|\u201c|\u201d|\u2018|\u2019|\uff08|\uff09|\u300a|\u300b|\u3008|\u3009|\u3010|\u3011|\u300e|\u300f|\u300c|\u300d|\ufe43|\ufe44|\u3014|\u3015|\u2026|\u2014|\uff5e|\ufe4f|\uffe5]/g; // 统计标点符号
let reg = /[ ]/g; // 统计空格
let reg = /[\t]/g; // 统计制表符
let count = getCount(text,reg);

本文为@艺文笔记原创文章,转载请注明出处:https://www.xuwenyan.com/archives/1573,非常感谢!
上一篇:  下一篇: