| required |
必填 |
Field或Struct validate:"required" |
| omitempty |
空时忽略 |
And more |
| len |
长度 |
Field validate:”len=0” |
| eq |
等于 |
Field validate:”eq=0” |
| gt |
大于 |
Field validate:”gt=0” |
| gte |
大于等于 |
Field validate:”gte=0” |
| lt |
小于 |
Field validate:”lt=0” |
| lte |
小于等于 |
Field validate:”lte=0” |
| eqfield |
同一结构体字段相等 |
Field validate:”eqfield=Field2” |
| nefield |
同一结构体字段不相等 |
Field validate:”nefield=Field2” |
| gtfield |
大于同一结构体字段 |
Field validate:”gtfield=Field2” |
| gtefield |
大于等于同一结构体字段 |
Field validate:”gtefield=Field2” |
| ltfield |
小于同一结构体字段 |
Field validate:”ltfield=Field2” |
| ltefield |
小于等于同一结构体字段 |
Field validate:”ltefield=Field2” |
| eqcsfield |
跨不同结构体字段相等 |
Struct1.Field validate:”eqcsfield=Struct2.Field2” |
| necsfield |
跨不同结构体字段不相等 |
Struct1.Field validate:”necsfield=Struct2.Field2” |
| gtcsfield |
大于跨不同结构体字段 |
Struct1.Field validate:”gtcsfield=Struct2.Field2” |
| gtecsfield |
大于等于跨不同结构体字段 |
Struct1.Field validate:”gtecsfield=Struct2.Field2” |
| ltcsfield |
小于跨不同结构体字段 |
Struct1.Field validate:”ltcsfield=Struct2.Field2” |
| ltecsfield |
小于等于跨不同结构体字段 |
Struct1.Field validate:”ltecsfield=Struct2.Field2” |
| min |
最小值 |
Field validate:”min=1” |
| max |
最大值 |
Field validate:”max=2” |
| structonly |
仅验证结构体,不验证任何结构体字段 |
Struct validate:”structonly” |
| nostructlevel |
不运行任何结构级别的验证 |
Struct validate:”nostructlevel” |
| dive |
向下延伸验证,多层向下需要多个dive标记 |
[][]string validate:”gt=0,dive,len=1,dive,required” |
| dive Keys & EndKeys |
与dive同时使用,用于对map对象的键的和值的验证,keys为键,endkeys为值 |
map[string]string validate:”gt=0,dive,keys,eq=1 |
| required_with |
其他字段其中一个不为空且当前字段不为空 |
Field validate:”required_with=Field1 Field2” |
| required_with_all |
其他所有字段不为空且当前字段不为空 |
Field validate:”required_with_all=Field1 Field2” |
| required_without |
其他字段其中一个为空且当前字段不为空 |
Field `validate:”required_without=Field1 Field2” |
| required_without_all |
其他所有字段为空且当前字段不为空 |
Field validate:”required_without_all=Field1 Field2” |
| isdefault |
是默认值 |
Field validate:”isdefault=0” |
| oneof |
其中之一 |
Field validate:”oneof=5 7 9” |
| containsfield |
字段包含另一个字段 |
Field validate:”containsfield=Field2” |
| excludesfield |
字段不包含另一个字段 |
Field validate:”excludesfield=Field2” |
| unique |
是否唯一,通常用于切片或结构体 |
Field validate:”unique” |
| alphanum |
字符串值是否只包含 ASCII 字母数字字符 |
Field validate:”alphanum” |
| alphaunicode |
字符串值是否只包含 unicode 字符 |
Field validate:”alphaunicode” |
| alphanumunicode |
字符串值是否只包含 unicode 字母数字字符 |
Field validate:”alphanumunicode” |
| numeric |
字符串值是否包含基本的数值 |
Field validate:”numeric” |
| hexadecimal |
字符串值是否包含有效的十六进制 |
Field validate:”hexadecimal” |
| hexcolor |
字符串值是否包含有效的十六进制颜色 |
Field validate:”hexcolor” |
| lowercase |
符串值是否只包含小写字符 |
Field validate:”lowercase” |
| uppercase |
符串值是否只包含大写字符 |
Field validate:”uppercase” |
| email |
字符串值包含一个有效的电子邮件 |
Field validate:”email” |
| json |
字符串值是否为有效的 JSON |
Field validate:”json” |
| file |
符串值是否包含有效的文件路径,以及该文件是否存在于计算机上 |
Field validate:”file” |
| url |
符串值是否包含有效的 url |
Field validate:”url” |
| uri |
符串值是否包含有效的 uri |
Field validate:”uri” |
| base64 |
字符串值是否包含有效的 base64值 |
Field validate:”base64” |
| contains |
字符串值包含子字符串值 |
Field validate:”contains=@” |
| containsany |
字符串值包含子字符串值中的任何字符 |
Field validate:”containsany=abc” |
| containsrune |
字符串值包含提供的特殊符号值 |
Field validate:”containsrune=☢” |
| excludes |
字符串值不包含子字符串值 |
Field validate:”excludes=@” |
| excludesall |
字符串值不包含任何子字符串值 |
Field validate:”excludesall=abc” |
| excludesrune |
字符串值不包含提供的特殊符号值 |
Field validate:”containsrune=☢” |
| startswith |
字符串以提供的字符串值开始 |
Field validate:”startswith=abc” |
| endswith |
字符串以提供的字符串值结束 |
Field validate:”endswith=abc” |
| ip |
字符串值是否包含有效的 IP 地址 |
Field validate:”ip” |
| ipv4 |
字符串值是否包含有效的 ipv4地址 |
Field validate:”ipv4” |
| datetime |
字符串值是否包含有效的日期 |
Field validate:”datetime” |