别再用 length 统计用户文本:一次 Unicode 字符数和 ESLint 护栏复盘
这次问题最初很小:昵称编辑框右下角有一个字数计数,代码直接用了 value.length。普通中文、英文都没问题,遇到 emoji 和国旗时就不对了。 😀 会被算成 2,🇯🇵 会被算成 4。用户看到的是一个字符,前端计数却像在数底层编码单元。这个 bug 一旦出现在昵称、签名、备注、举报描述、搜索词、弹窗 prompt 这类用户可见输入里,表现会很别扭:计数提前超限、截断把 emoji 切坏