前端验证通过 JavaScript 在提交前实时检查表单,如邮箱、手机号格式及密码一致性,常用正则表达式匹配,监听 input 或 blur 事件动态提示,submit 时阻止默认行为并统一校验,但不可替代后端验证。

JavaScript 可以在用户提交表单前实时检查输入内容是否符合要求,比如 邮箱 格式是否正确、密码是否重复、必填项是否为空等。这种验证叫“前端 验证”,它不替代 后端 验证,但能立刻反馈问题,提升体验、减少无效提交。
验证常见类型(如邮箱、手机号、密码)
用 正则表达式(RegExp)匹配格式是最常用方式。例如:
- 邮箱:
/^[^s@]+@[^s@]+.[^s@]+$/—— 确保含 @ 和点号,且前后都有字符 - 手机号(国内):
/^1[3-9]d{9}$/—— 匹配以 1 开头、第二位是 3–9、共 11 位的数字 - 两次输入密码一致:比较两个
<input type="password">的.value是否相等
监听输入并动态提示
不用等到点击提交才检查。可以监听 input、blur(失焦)或 change 事件:
-
input:每打一个字就校验(适合实时提示,但注意别太频繁) -
blur:用户离开当前输入框时校验(更常用,平衡体验和性能) - 校验后,通过修改元素的
className或添加<span class="error"> 提示文字 </span>来显示结果
阻止非法提交
给表单绑定 submit 事件,在回调中调用 event.preventDefault() 可阻止默认提交行为。再统一检查所有字段:
立即学习“Java 免费学习笔记(深入)”;
- 遍历所有必填
<input required>,检查.value.trim() !== "" - 对每个字段运行对应规则(如邮箱正则。test(value))
- 全部通过才让表单真正提交(比如调用
form.submit()或发送 fetch 请求)
注意边界与局限
前端验证容易被绕过(禁用 JS、手动改 DOM、直接发请求),所以 服务端必须重新验证。JS 验证只负责友好提醒和减轻服务器压力。另外:
- 不要仅依赖
type="email"或required属性——它们只是基础辅助,兼容性和提示可控性差 - 中文姓名、身份证号等复杂规则需结合 Unicode 范围或第三方库(如 id-validator)
- 避免在验证中暴露敏感逻辑(如通过报错信息猜出密码规则)