表单计数改成按码点,与宿主校验对齐
xiaohongshu/FormCard.tsx:used 改用 Array.from(...).length,避免补充平面字符被按 UTF-16 码元多算。
This commit is contained in:
+3
-1
@@ -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 (
|
||||
|
||||
Reference in New Issue
Block a user