写代码最怕啥?不是逻辑复杂,而是用户输个参数能把程序直接干崩。比如让你填年龄,结果有人非得填个 -18 或者 999,系统一跑,直接报错。这时候就得靠“数字参数校验范围”来兜底。
为啥要校验数字范围?
举个例子,你做个健康打卡小程序,体温字段只允许 35.0 到 42.0 之间。要是不设限,用户乱填个 100 度,后台统计全乱套。加个校验,超出范围直接提示,体验也好,数据也稳。
常见的校验场景还有:年龄不能小于0或大于150、折扣率限制在0到1之间、分页参数每页数量控制在10到100条。这些看似小细节,实际开发中漏一个,后期调试能折腾死人。
手动写校验太累?试试这些软件
1. JSON Schema Validator(在线工具)
如果你的接口用 JSON 传参,这个工具特别实用。可以定义每个字段的类型和数值范围。比如 age 字段要求是整数,最小0最大120:
{
"type": "object",
"properties": {
"age": {
"type": "integer",
"minimum": 0,
"maximum": 120
}
},
"required": ["age"]
}
提交数据前先过一遍校验,有问题当场拦下,前端后端都能用。
2. Hibernate Validator(Java 开发推荐)
做 Java 项目的同学应该熟悉 Spring Boot,搭配 Hibernate Validator 能轻松实现参数范围控制。比如用 @Min 和 @Max 注解:
public class UserForm {
@Min(value = 0, message = "年龄不能小于0")
@Max(value = 120, message = "年龄不能超过120")
private Integer age;
// getter 和 setter
}
请求一进来自动触发校验,不符合规则直接返回错误信息,代码干净又安全。
3. Yup(前端表单神器)
React 或 Vue 项目里处理表单,Yup 配合 Formik 或 VeeValidate 真香。比如限制输入的分数只能是 0 到 100 的数字:
import * as yup from 'yup';
const schema = yup.object().shape({
score: yup
.number()
.typeError('必须是数字')
.min(0, '分数不能低于0')
.max(100, '分数不能高于100')
.required('分数必填')
});
用户一边打字一边校验,体验顺滑,还能自定义提示语。
数字参数校验范围看着小事,但正是这些细节决定软件稳不稳。别等到线上出问题才想起来补,开发阶段就把规则定好,省得后期背锅。