表单计数改成按码点,与宿主校验对齐

xiaohongshu/FormCard.tsx:used 改用 Array.from(...).length,避免补充平面字符被按 UTF-16 码元多算。
This commit is contained in:
2026-10-06 21:07:02 +08:00
parent f5ec14966c
commit 3a8415398a
@@ -123,7 +123,9 @@ function FieldRow({
onChange: (value: string) => void;
}) {
const id = useId();
const used = value.trim().length;
// 按码点计数,与宿主 `validate_text` 的 `chars().count()` 对齐:`String.length` 数的是 UTF-16
// 码元,一个 emoji 会被这里算成 2、宿主算成 1,计数徽标会比宿主更早报超限。
const used = Array.from(value.trim()).length;
const overLimit = maxChars !== undefined && used > maxChars;
return (