每日智识
柔彩主题三 · 更轻盈的阅读体验

表单验证长度限制设置:别让超长输入搞砸你的数据收集

发布时间:2026-02-10 21:50:17 阅读:86 次

上周帮市场部同事改一个客户登记页,发现姓名栏能输500个字——结果真有人把整段《出师表》抄进去了。后台导出Excel一看,全是乱码和截断内容。这不是个别现象,很多职场人做表单时只顾着加字段,却忘了给输入框‘上锁’。

为什么长度限制不是可选项

用户随手粘贴、复制错误、测试人员乱敲……没设长度上限的输入框就像没装门锁的档案柜。手机号输成15位、邮箱地址漏掉@、备注栏塞进3000字会议纪要——这些都会让系统报错、数据入库失败,甚至拖慢整个流程。

常见场景怎么设才合理

姓名:中文名一般不超过10字,建议 max-length="10";英文名带空格和连字符,可放宽到30;
手机号:国内统一11位,直接写死:

<input type="tel" maxlength="11">

邮箱:虽然标准允许很长,但实际业务中超过100字符基本是误填,设为100更稳妥;
密码:最少8位、最多32位是当前主流,前后端都要同步校验。

前端只是第一道关

HTML 的 maxlength 属性能拦住大部分误操作,但它能被绕过——比如用开发者工具删掉属性,或直接调接口提交。所以后端必须二次校验:

if (strlen($name) > 10) {
throw new Exception('姓名不能超过10个字符');
}

前后端限制值必须完全一致,否则用户前端没提示,提交后突然弹错,体验直接掉档。

留点余量,别卡太死

曾见过一个身份证号字段设了18位,结果港澳台同胞填回乡证就卡住。类似情况还有:企业名称含括号、地址带破折号、备注要贴截图链接……建议关键字段留1–2字符余量,或者用正则配合长度双重判断。

下次做表单前,花两分钟翻翻业务规则文档,再对着字段一个个敲 maxlength,比后期修数据、查日志、重跑报表省心多了。