工作原理
字符数与字节数是两个不同的数字,混为一谈会带来真实缺陷。JavaScript 字符串以 UTF-16 码元计量,设有长度限制的数据库列可能按字符计数,而 HTTP 请求头或定长字段按字节计数。一个汉字是一个字符,但在 UTF-8 中占三个字节;一个 emoji 常常是两个码元、四个字节。本工具分别给出字符数、UTF-8 字节数和码点数,使“能通过前端校验却撑爆数据库列”的值在写入之前就被发现。
分词是语言相关的,并不存在唯一正确的定义。对以空格分隔的语言,按空白切分已经足够接近,再对紧贴单词的标点做修正即可。对中文和日文这类不以空格分词的语言,按空白切分会让整整一段的结果为 1,因此 CJK 字符会被逐字计数并单独报告。每分钟 220 词的阅读速度与 130 词的朗读速度是通行取值,两者都是近似值,不同读者之间可能相差近一倍。
词频图表先分词、转小写、去标点、剔除停用词,然后计数。没有停用词过滤,图表毫无意义:the、of、and 会统治任何英文文本。过滤之后,真正承载含义的词才会浮现。写作者用它发现无意的重复,开发者用它抽查分词器的行为。此外还会给出独立词数以及独立词与总词数之比(类型—形符比),作为词汇丰富度的粗略度量。
命名转换是开发者最常用的部分。它支持 camelCase、PascalCase、snake_case、SCREAMING_SNAKE_CASE、kebab-case、dot.case、标题式大写、句首大写以及全小写,并且会按真实标识符中确实出现的边界拆分:空格、连字符、下划线、点号、斜杠,以及大小写字母之间的转换。最后一条规则正是让已有的 camelCase 标识符能正确转成 snake_case,而不是整体被当成一个词的原因。
常见应用场景
- 检查 meta 描述或标题是否超出搜索引擎展示的字符上限。
- 在写入定长数据库列之前,测量字符串的 UTF-8 字节长度。
- 为文档估算阅读时间,或为讲稿估算朗读时间。
- 在发布文章前找出被过度使用的词。
- 在语言或规范之间切换时,把字段名在 camelCase、snake_case 与 kebab-case 之间转换。
- 确认某个 JSON 字段名能否在会改变大小写的转换中幸存。
最后更新: 2026-10-14