字符串长度统计
← ToolBox
/ 字符串长度统计
🌙
首页
‹
💻 开发
‹
字符串长度统计
📏 String Length Counter
Count characters, bytes, lines, words and spaces.
📐 工作原理与说明
统计文本的字符数、字节数、词数与行数,是内容与接口限长校验的常用工具。
字符 vs 码元
:JS 的
.length
计的是 UTF-16 码元,emoji 与部分生僻汉字占 2 个码元。
准确计数
:用
[...str].length
或
Intl.Segmenter
按字素簇切分更符合直觉。
字节数
:取决于编码,UTF-8 下英文 1 字节、常用中文 3 字节、emoji 常 4 字节。
词数
:英文按空白与标点切分;中文需分词,常用字数与字符数近似。
输入文本
清空
示例文本
复制统计
📌 统计规则
字符数:Unicode 码点数量(含空格、换行、标点)。
字节数:按 UTF-8 编码计算,中文通常占 3 字节。
词数:按空白分隔的连续非空白片段计数。
行数:按换行符分割,空文本计为 0 行。
📚 深度解析:字符串长度统计
💡 常见使用场景
校验输入长度(如密码、短信字数)。
接口限长校验:短信按 70 字/条计费(含 emoji 时更少),提交前先统计真实字符数与字节数,避免超长被拆分或截断。
统计
"Hello 世界":字符数 8(H e l l o 空格 世 界),UTF-8 字节数 11(中文各 3 字节)。
❓ 常见问题(FAQ)
字符数与字节数为何不同?
中文等多字节字符在 UTF-8 占多字节,数据库常按字节限制。
为什么 emoji 长度算出来是 2?
因为 JS 字符串的 .length 统计的是 UTF-16 码元,而 emoji 大多位于辅助平面、需两个码元(代理对)表示。要得到「人眼看到的字符数」,应遍历 [...str] 或用 Intl.Segmenter 按字素簇计数;统计传输体积则要看 UTF-8 字节数。