SuperAPI AI 工具集

shadcn-syntax-input-otp

前端与建站

查看项目

更新于 10-15 22:18

技能介绍

用途:为 shadcn ui(evergreen-2026)项目提供 Input OTP 一次性验证码输入原语,适用于邮箱验证码、短信二次验证码、TOTP、备份码、支付或解锁 PIN 等固定长度逐位输入场景。自由文本、密码或长度未知的输入应改用 Input 组件。

主要能力:InputOTP 家族基于 guilhermerodz 的 input-otp 库,将验证码渲染为一行固定宽度槽位,视觉上像独立字符框,底层仍是单个可访问文本输入。包含四个原语:InputOTP(根容器,拥有 maxLength、value、onChange、pattern、onComplete、autoComplete、disabled)、InputOTPGroup(连续槽位分组)、InputOTPSlot(单个可见字符框,需传 index)、InputOTPSeparator(组间分隔符)。

安装:pnpm dlx shadcn@latest add input-otp

使用要点:每个 InputOTPSlot 的 index 必须唯一且对应位置,槽位数量必须等于 maxLength;分隔符放在两个输入组之间。pattern 接收正则字符串而非 RegExp 对象,可用库导出的 REGEXP_ONLY_DIGITS、REGEXP_ONLY_DIGITS_AND_CHARS、REGEXP_ONLY_CHARS。value/onChange 支持受控模式,onComplete 在达到 maxLength 时触发一次。autoComplete="one-time-code" 可启用系统短信验证码自动填充,粘贴可一次填入整段代码。

限制与集成:文件含 "use client",定制时不要移除。与 react-hook-form 集成应使用 Controller 而非 register。组件暴露 value 与 onChange,不暴露底层 render prop。本技能不覆盖 Form 组合层与端到端表单验证,需参考配套技能。原文未提供收费、价格或效果数据。