gin-binding参数效验
1、参考
GitHub:go-playground / validator
参考博文:gin-binding — go-playground/validator 的常用关键字
2、介绍
Gin框架默认使用 validator(binding);其它框架可以引入使用;
3、详情
关键字 | 针对对象 | 功能 | 示例 |
---|---|---|---|
required | 属性,结构,文件 |
标示必须存在(0时验证失败 )
|
validate:"required"
|
omitempty | 属性,结构,文件 | omitempty要么不传,传的话就要大于5 |
validate:"omitempty,gt=5"
|
len | 字符串,数组,时间间隔,文件长度 | 标示长度,size,间隔,大小 |
validate:"len=1"
|
min | 字符串,数字,数组,时间间隔 | 标示最小 |
validate:"min=1"
|
max | 字符串,数字,数组,时间 | 标示最大 |
validate:"max=7"
|
eq | 字符串,数组,时间间隔,布尔值 | 标示相等,正对数组是长度 |
validate:"eq=3"
|
ne | 字符串,数组,时间间隔,布尔值 | 标示不相等 |
validate:"ne="
|
lt | 字符串,数字,数组,时间 | 小于 |
validate:"lt=3"
|
lte | 字符串,数字,数组,时间 | 小于等于 |
validate:"lte=3"
|
gt | 字符串,数字,数组,时间 | 大于 |
validate:"gt=3"
|
gte | 字符串,数字,数组,时间 | 大于等于 |
validate:"gte=3"
|
eqfield | 同级属性 | 等于 |
validate:"eqfield=MaxString"
|
eqcsfield | 内部属性 | 等于 |
validate:"eqcsfield=Inner.EqCSFieldString"
|
necsfield | 内部属性 | 不等于 |
validate:"necsfield=Inner.NeCSFieldString"
|
gtcsfield | 内部属性 | 大于 |
validate:"gtcsfield=Inner.GtCSFieldString"
|
ltcsfield | 内部属性 | 小于 |
validate:"ltcsfield=Inner.LtCSFieldString"
|
ltecsfield | 内部属性 | 小于等于 |
validate:"ltecsfield=Inner.LteCSFieldString"
|
nefield | 同级属性 | 不等于 |
validate:"nefield=EqFieldString"
|
gtfield | 同级属性 | 大于 |
validate:"gtfield=MaxString"
|
gtefield | 同级属性 | 大于等于 |
validate:"gtefield=MaxString"
|
ltfield | 同级属性 | 小于 |
validate:"ltfield=MaxString"
|
ltefield | 同级属性 | 小于等于 |
validate:"ltefield=MaxString"
|
alpha | 字符串 |
"^[a-zA-Z]+$"
|
validate:"alpha"
|
alphanum | 字符串 |
"^[a-zA-Z0-9]+$"
|
validate:"alphanum"
|
numeric | 字符串 |
"^[-+]?[0-9]+(?:\\.[0-9]+)?$"
|
validate:"numeric"
|
number | 字符串 |
"^[0-9]+$"
|
validate:"number"
|
hexadecimal | 字符串 |
"^(0[xX])?[0-9a-fA-F]+$"
|
validate:"hexadecimal"
|
hexcolor | 字符串 |
"^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$"
|
validate:"hexcolor"
|
rgb | 字符串 | 复杂正则不展示 |
validate:"rgb"
|
rgba | 字符串 | 复杂正则不展示 | |
hsl | 字符串 | 复杂正则不展示 | |
hsla | 字符串 | 复杂正则不展示 | |
字符串 | 复杂正则不展示 |
validate:"email"
|
|
url | 字符串 | url规则 |
validate:"url"
|
uri | 字符串 | uri规则 |
validate:"uri"
|
base64 | 字符串 |
"^(?:[A-Za-z0-9+\\/]{4})*(?:[A-Za-z0-9+\\/]{2}==|[A-Za-z0-9+\\/]{3}=|[A-|Za-z0-9+\\/]{4})$"
|
validate:"base64"
|
contains | 字符串 | 包含 |
validate:"contains=purpose"
|
containsany | 字符串 | 包含任意一个 |
validate:"containsany=!@#$"
|
excludes | 字符串 | 不包含 |
validate:"excludes=text"
|
excludesall | 字符串 | 不包含任意一个 |
validate:"excludesall=!@#$"
|
excludesrune | 字符串 | 不包含某个rune类型 |
validate:"excludesrune=☻"
|
isbn | 字符串 | 两个isbn |
validate:"isbn"
|
isbn10 | 字符串 |
"^(?:[0-9]{9}X|[0-9]{10})$"
|
validate:"isbn10"
|
isbn13 | 字符串 |
^(?:(?:97(?:8|9))[0-9]{10})$"
|
validate:"isbn13"
|
uuid | 字符串 |
"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
|
validate:"uuid"
|
uuid3 | 字符串 |
"^[0-9a-f]{8}-[0-9a-f]{4}-3[0-9a-f]{3}-[0-9a-f]{4}-[0-9a-f]{12}$"
|
validate:"uuid3"
|
uuid4 | 字符串 |
"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
|
validate:"uuid4"
|
uuid5 | 字符串 |
"^[0-9a-f]{8}-[0-9a-f]{4}-5[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
|
validate:"uuid5"
|
ascii | 字符串 |
"^[\x00-\x7F]*$"
|
validate:"ascii"
|
printascii | 字符串 |
^[\x20-\x7E]*$"
|
validate:"printascii"
|
multibyte | 字符串 |
"[^\x00-\x7F]"
|
validate:"multibyte"
|
datauri | 字符串 |
^data:((?:\w+\/(?:([^;]|;[^;]).)+)?)
|
validate:"datauri"
|
latitude | 字符串 |
"^[-+]?([1-8]?\\d(\\.\\d+)?|90(\\.0+)?)$"
|
validate:"latitude"
|
longitude | 字符串 |
"^[-+]?(180(\\.0+)?|((1[0-7]\\d)|([1-9]?\\d))(\\.\\d+)?)$"
|
validate:"longitude"
|
ssn | 字符串 |
^[0-9]{3}[ -]?(0[1-9]|[1-9][0-9])[ -]?([1-9][0-9]{3}|[0-9][1-9][0-9]{2}|[0-9]{2}[1-9][0-9]|[0-9]{3}[1-9])$
|
validate:"ssn"
|
ip | 字符串 | ip规则 |
validate:"ip"
|
ipv4 | 字符串 | ipv4规则 |
validate:"ipv4"
|
ipv6 | 字符串 | ipv6规则 |
validate:"ipv6"
|
cidr | 字符串 | ip规则 |
validate:"cidr"
|
cidrv4 | 字符串 | ipv4规则 |
validate:"cidrv4"
|
cidrv6 | 字符串 | ipv6规则 |
validate:"cidrv6"
|
tcp_addr | 字符串 | 对应规则按需验证 |
validate:"tcp_addr"
|
tcp4_addr | 字符串 | 对应规则按需验证 |
validate:"tcp4_addr"
|
tcp6_addr | 字符串 | 对应规则按需验证 |
validate:"tcp6_addr"
|
udp_addr | 字符串 | 对应规则按需验证 |
validate:"udp_addr"
|
udp4_addr | 字符串 | 对应规则按需验证 |
validate:"udp4_addr"
|
udp6_addr | 字符串 | 对应规则按需验证 |
validate:"udp6_addr"
|
ip_addr | 字符串 | 对应规则按需验证 |
validate:"ip_addr"
|
ip4_addr | 字符串 | 对应规则按需验证 |
validate:"ip4_addr"
|
ip6_addr | 字符串 | 对应规则按需验证 |
validate:"ip6_addr"
|
unix_addr | 字符串 | 对应规则按需验证 |
validate:"unix_addr"
|
mac | 字符串 | 对应规则按需验证 |
validate:"mac"
|
iscolor | 字符串 | 颜色校验所有颜色规则 |
validate:"iscolor"
|
oneof | OneOfString | 对应规则按需验证 |
validate:"oneof=red green"
|
oneof | OneOfInt | 对应规则按需验证 |
validate:"oneof=5 63"
|
unique | UniqueSlice | 对应规则按需验证 |
validate:"unique"
|
unique | UniqueArray | 对应规则按需验证 |
validate:"unique"
|
unique | UniqueMap | 对应规则按需验证 |
validate:"unique"
|
json | JSONString | 对应规则按需验证 |
validate:"json"
|
lowercase | LowercaseString | 对应规则按需验证 |
validate:"lowercase"
|
uppercase | UppercaseString | 对应规则按需验证 |
validate:"uppercase"
|
datetime | Datetime | 对应规则按需验证 |
validate:"datetime=2006-01-02"
|
gin-binding参数效验相关推荐
- golang gin binding.JSON undefined
func bindWithHandler(c *gin.Context) {a := FormA{}b := FormB{}if err := c.A(&a, binding.JSON); e ...
- gin ajax 获取请求参数,gin请求参数处理
本章介绍Gin框架获取请求参数的方式 1.获取Get 请求参数 Get请求url例子:/path?id=1234&name=Manu&value=111 获取Get请求参数的常用函数: ...
- 前端参数效验防止sql注入的方法
最近做完项目时,甲方对系统有要过安全等保三级的要求,这里针对我所编写的模块遇到的前端代码扫描出现的sql注入问题,给出部分解决方案. 错误示例 请求api时,参数未加效验: let _obj ={pa ...
- SpringBoot 优雅的参数效验!
引言 不知道大家平时的业务开发过程中 controller 层的参数校验都是怎么写的?是否也存在下面这样的直接判断? public String add(UserVO userVO) {if(user ...
- Gin验证请求参数-自定义验证规则
Gin对请求参数自定义验证规则可以分三步: 自定义结构体验证绑定binding标签 针对该标签定义验证方法 再将该验证方法注册到validator验证器里面 自定义结构体验证绑定binding标签 需 ...
- Go语言web框架 gin
Go语言web框架 GIN gin是go语言环境下的一个web框架, 它类似于Martini, 官方声称它比Martini有更好的性能, 比Martini快40倍, Ohhhh-.看着不错的样子, 所 ...
- gin 项目结构_Gin框架中文文档
最近更新时间:2019-02-20 Gin 是一个 go 写的 web 框架,具有高性能的优点.官方地址:https://github.com/gin-gonic/gin 目录 [TOC] 安装 要安 ...
- golang Gin Validator以及翻译校验
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 golang Gin - validator验证 前言 个人学习Gin 的记录,只作为记录,如果能帮助到别人,也希望为新手提供一些经验 ...
- 第22关 go的web框架-gin
怕什么真理无穷,进一寸有一寸的欢喜. 第22关 go的web框架-gin 22-1 gin的helloworld体验 22-2 使用New和Default初始化路由器的区别 22-3 gin的路由分组 ...
- gin阶段学习(入门)
文章目录 1.环境配置 2.测试运行 3.请求路由 3.1 多种请求类型 3.2 静态文件夹 3.3 参数作为URL 4.获取请求参数 4.1 获取get请求 4.2 泛绑定 4.3 获取body内容 ...
最新文章
- 高考623分却说自己是“反面教材”?外卖小哥最新发声!
- leetcode-26. Remove Duplicates from Sorted Array
- java十四章带参方法课后_java14带参的方法
- 基础补充:使用xlrd模块读取excel文件
- struts文件上传时异常问题
- IoC--structuremap
- vue单选框选中_vue中单选框与多选框的实现与美化
- 计算机二级考试试题在线看,【TOP182015年全国计算机二级考试试题题库.doc文档免费在线阅读材料】...
- WF4.0 基础篇 (二十九) WorkflowInspectionServices
- webview取java的参数值_Android 显示 WebView ,加载URL 时,向webview的 header 里面传递参数...
- OC中字符串的提取与替换-四种不同方法实现
- MAC系统如何连接Windows共享文件?MAC系统连接Win共享文件的方法
- python3.7如何使用enum_python3 enum模块
- mt6735通用recovery_mt6735刷机包下载
- Geth私链的多节点运行
- 只需4步,就能在SOLIDWORKS创建首件检验报告(FAI)
- 5G技术即将到来,5G网络的基本特点和应用你了解了多少
- Class-Balanced Loss Based on Effective Number of Samples - 1 - 论文学习
- Java算法_优先队列和PriorityQueue——HDU 1873:看病要排队
- 详解ReID的各部分组成及Trick——FastReID中的baseline配置