广民广民
工具实现揭秘文本工具

字数统计是怎么实现的

字数/字符数/词数/行段落的统计口径与实现——为什么中文统计比英文难

TL;DR:字数统计实时给出字数、字符数、词数、行数与段落数四个口径。它最大的实现难点不在「数数」,而在中文没有空格分词——本篇讲各口径怎么定义、怎么数才对。

⏱️ 30 秒上手

  1. 打开 tools.guangmin.top/tools/text_stats;
  2. 粘贴任意文本,四个口径实时刷新;
  3. 需要哪个口径看哪个,无需任何点击。

🔧 它是怎么实现的

四个口径的定义

口径统计规则典型用途
字数汉字每个算 1,英文单词每个算 1,数字串算 1论文字数要求、稿费字数
字符数逐字符计数(含标点、空格可选)平台字数上限(如 500 字限制)
词数按空格切分的英文单词数英文写作
行/段落换行符分段排版检查

中文统计的难点

英文词之间有空格,split(' ') 就能数词;中文的「字」必须逐字符判断。实现上用 Unicode 判断(/[\u4e00-\u9fa5]/ 范围匹配汉字),中英混排时两套口径并行统计再相加:

为什么能做到实时

全部统计是 O(n) 的线性扫描(一遍从头读到尾),十万字文本也是毫秒级——所以和所有文本工具一样做成输入即算,没有统计按钮。

📏 边界与限制

项说明
统计口径见上表;「字数」是中文习惯口径(汉字+英文词),非字符数
Emoji按字符数计,可能占多个编码位
数据全程浏览器内存,关闭页面即消失

🔗 延伸阅读