validator库参数校验tag常用属性详解

时间:2025-03-11 11:34:26

validator库参数校验

web开发中,我们不可避免的对一些参数进行各种校验,比如长度限定,类型限定等等,以前做Java的时候,自己直接 if else就应付了,写的老长老长了,这显然不合理。

  • gin框架使用/go-playground/validator进行参数校验
  • 并且支持/go-playground/validator/v10,我们需要在定义结构体时使用 binding tag标识相关校验规则。

可以的话,最好也去看看 官方文档

binding属性

字符串约束

名称 含义
excludesall 不包含参数中任意的 UNICODE 字符,例如excludesall=ab;
excludesrune 不包含参数表示的 rune 字符,excludesrune=asong;
startswith 以参数子串为前缀,例如startswith=hi;
endswith 以参数子串为后缀,例如endswith=bye。
contains 包含参数子串,例如contains=email;
containsany 包含参数中任意的 UNICODE 字符,例如containsany=ab;
containsrune 包含参数表示的 rune 字符,例如`containsrune=asong;
excludes 不包含参数子串,例如excludes=email;

范围约束

名称 含义
ne 不等于参数值,例如 ne=5;
gt 大于参数值,例如 gt=5;
gte 大于等于参数值,例如 gte=50;
lt 小于参数值,例如 lt=50;
lte 小于等于参数值,例如 lte=50;
oneof 只能是列举出的值其中一个,这些值必须是数值或字符串,以空格分隔,如果字符串中有空格,将字符串用单引号包围,例如 oneof=male female。
eq 等于参数值,