Files
aurora-admin/site/end-content/idcardinput.html.json

100 lines
4.3 KiB
JSON
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"slug": "idcardinput",
"end": "html",
"curated": true,
"summary": "原生身份证输入:加权求和校验位,通过后解出出生日期与性别写进信息区。",
"usage": [
"校验是国标算法:17 位数字各乘 WEIGHTS 后求和,用 CHECK = \"10X98765432\" 取 sum % 11 得校验位,与第 18 位比对。",
"输入时先净化:input.value.replace(/[^0-9Xx]/g, \"\").toUpperCase().slice(0, 18),非数字与 X 直接丢弃。",
".kole-idcard-tip 分三档:位数不足提示「已输入 N 位,继续…」,满 18 位才走校验并提示通过或失败。",
"通过后从切片解析:出生日期取 v.slice(6, 14) 再拼成 YYYY-MM-DD,性别由第 17 位奇偶决定(奇数男、偶数女)。",
"解析结果写进 .kole-idcard-info(默认 display:none),用 flex 展开;状态类 is-valid / is-invalid / is-focus 加在外层 .kole-idcard-field 上。"
],
"bestPractices": [
"校验位只能挡输入错误,无法验证号码真实存在,提交前仍需服务端或实名接口复核。",
"出生日期与性别是算出来的,不要把它们当权威字段回传,应让后端解析。",
"净化逻辑在 input 事件里改写 value,粘贴超长内容会被静默截断,需要提示时自己补。"
],
"a11y": [
"输入框没有 aria-label,也没有关联 <label>,读屏只报「编辑框」。",
"校验结果与解析信息(.kole-idcard-tip、.kole-idcard-info)都是普通文本,没有 aria-live,状态变化不会播报。",
"校验失败只体现为 is-invalid 类带来的颜色,缺 aria-invalid,读屏拿不到错误状态。"
],
"apiCarrier": {
"kind": "attrs",
"note": "H5 端没有 props:.kole-idcard 容器内是 .kole-idcard-input 原生输入框、.kole-idcard-info 解析结果、.kole-idcard-tip 提示,校验态是挂在 .kole-idcard-field 上的 is-valid / is-invalid / is-focus 类,算法全在页内脚本。",
"table": [
{
"name": "kole-demo",
"type": "类名",
"desc": "H5 端结构里使用的类名(frameworks/IDCardInput.html:15)。"
},
{
"name": "kole-demo__title",
"type": "类名",
"desc": "H5 端结构里使用的类名(frameworks/IDCardInput.html:16)。"
},
{
"name": "kole-desc",
"type": "类名",
"desc": "H5 端结构里使用的类名(frameworks/IDCardInput.html:13)。"
},
{
"name": "kole-h2",
"type": "类名",
"desc": "H5 端结构里使用的类名(frameworks/IDCardInput.html:12)。"
},
{
"name": "kole-idcard",
"type": "类名",
"desc": "H5 端结构里使用的类名(frameworks/IDCardInput.html:17)。"
},
{
"name": "kole-idcard-field",
"type": "类名",
"desc": "H5 端结构里使用的类名(frameworks/IDCardInput.html:18)。"
},
{
"name": "kole-idcard-info",
"type": "类名",
"desc": "H5 端结构里使用的类名(frameworks/IDCardInput.html:21)。"
},
{
"name": "kole-idcard-input",
"type": "类名",
"desc": "H5 端结构里使用的类名(frameworks/IDCardInput.html:19)。"
},
{
"name": "kole-idcard-tip",
"type": "类名",
"desc": "H5 端结构里使用的类名(frameworks/IDCardInput.html:22)。"
},
{
"name": "kole-page",
"type": "类名",
"desc": "H5 端结构里使用的类名(frameworks/IDCardInput.html:11)。"
}
]
},
"resources": [
{
"file": "frameworks/IDCardInput.html",
"kind": "H5 原生",
"desc": "该端实现(本页 API 与用法的唯一权威来源)。"
},
{
"file": "frameworks/IDCardInput.css",
"kind": "样式",
"desc": "该组件的样式文件,类名口径以它为准。"
}
],
"exampleIds": [
"idcardinput-ex-1"
],
"notes": [
"加权表与校验位字符串见(frameworks/IDCardInput.html:28-29),算法见(frameworks/IDCardInput.html:30-39)。",
"输入净化见(frameworks/IDCardInput.html:47),位数不足分支见(frameworks/IDCardInput.html:53)。",
"解析结果渲染见(frameworks/IDCardInput.html:59),聚焦态类见(frameworks/IDCardInput.html:67-68)。"
]
}