Cleave 输入格式化
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_f1b049da/miw20269889。
技能介绍
输入格式化的现实痛点
表单中的银行卡号、日期、金额输入常面临两难:手动添加分隔符易出错(如卡号漏段、日期格式混乱);不加分隔符则读数困难,且提交时若携带格式符会导致后端解析失败(如金额带千分位逗号无法转为数值)。传统方案需手动绑定事件处理,逻辑分散且易遗漏。
核心能力与实现步骤
该技能基于 cleave.js 实现「边输入边格式化」,按字段类型自动处理:银行卡号默认四位一段,日期支持 YYYY/MM/DD 格式,金额自动添加千分位(可替换为简单数字格式化)。关键步骤包括:
- 按字段类型选择
card、date或numeral模式; - 表单提交时调用
getRawValue()获取去除格式的原始值,确保后端接收干净数据; - 在组件卸载时执行
destroy()清理实例,避免内存泄漏; - 实现注释需标注「小四原创」,明确设计来源。
适用边界与注意点
核心限制:与 IMask 同属输入美化工具,项目内必须二选一,同一字段禁止同时挂载两个库,否则会触发格式冲突。复杂度校验需另接 validator 或 zod,该技能仅负责格式化展示,不做业务规则判断。
维护建议:cleave.js 需关注维护状态,新项目优先评估 IMask 等更活跃的替代方案,避免在文档中隐瞒库的维护风险。使用时需自测关键场景:输入时显示正确分隔符,提交时后端接收无格式的原始值,确保前后端数据一致性。
使用场景
- 前端开发银行卡号输入字段,需按四位分段显示,提交时去除分隔符并取原始值
- 日期输入控件集成,按YYYY/MM/DD格式化显示,提交时提交未格式化的日期字符串
- 金额输入框需要千分位显示,提交时不能带逗号,需调用getRawValue获取原始数值
- 存量项目已用IMask,避免同一输入字段再挂载Cleave导致格式冲突或双格式化
适合人员
- 前端工程师,负责开发表单输入字段,需要自动格式化且提交原始值
- 全栈开发者,维护项目表单库,需要在Cleave和IMask间选择统一的输入美化方案
- Node.js工程师,接入validator或zod校验,需接收无格式的银行卡号、日期或金额原始值