做网站时,用户提交的数据五花八门。比如注册页面,邮箱格式不对、密码太短、手机号乱填,后端接不住就得翻车。以前写一堆 if 判断,代码又臭又长,改起来还容易漏。
为什么需要专门的校验工具?
试想一个场景:你正在开发一个订单提交接口,要检查用户传来的收货地址、电话、商品 ID、数量。手动写判断逻辑,光是空值检测就得五六行。一旦字段变多,维护成本直线上升。这时候,一个轻量级参数校验库就能帮你把重复工作交给工具。
什么是轻量级参数校验库?
它不是那种动辄依赖一堆模块的重型框架,而是专注做一件事——快速验证数据是否合规。体积小,引入不拖慢项目,API 简单明了,适合中小型项目或不想搞得太复杂的团队。
比如用 validator.js,几行代码就能搞定常见格式校验:
const validator = require('validator');
const email = 'user@example.com';
if (!validator.isEmail(email)) {
console.log('邮箱格式错误');
}
const phone = '13800138000';
if (!validator.isMobilePhone(phone, 'zh-CN')) {
console.log('手机号不合法');
}
自己写个简单的校验函数也行?
当然可以,但当你发现每次都要重写邮箱正则、手机号规则、数字范围判断时,就会意识到:这些其实是通用逻辑。抽出来封装成小工具,下次直接用,省事还不易出错。
有些库甚至支持链式调用,像这样:
check(data)
.field('email').isEmail().required()
.field('age').isInt({ min: 18 }).required()
.throw();
一目了然,哪几个字段、要什么规则,错了一行就抛提示,前端后端都能用得上。
选型小建议
如果你的项目基于 Express,express-validator 是个不错的选择,直接挂中间件里用。纯前端表单可以用 just-validate,零依赖,几行 JS 就能让表单有实时提示。不需要复杂功能时,别上来就上 Yup 或 Joi,虽然强大,但对小项目来说有点杀鸡用牛刀。
真正好用的工具,是让你感觉不到它的存在——代码干净了,bug 少了,上线也安心了。