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 字符串 复杂正则不展示
email 字符串 复杂正则不展示 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参数效验相关推荐

  1. golang gin binding.JSON undefined

    func bindWithHandler(c *gin.Context) {a := FormA{}b := FormB{}if err := c.A(&a, binding.JSON); e ...

  2. gin ajax 获取请求参数,gin请求参数处理

    本章介绍Gin框架获取请求参数的方式 1.获取Get 请求参数 Get请求url例子:/path?id=1234&name=Manu&value=111 获取Get请求参数的常用函数: ...

  3. 前端参数效验防止sql注入的方法

    最近做完项目时,甲方对系统有要过安全等保三级的要求,这里针对我所编写的模块遇到的前端代码扫描出现的sql注入问题,给出部分解决方案. 错误示例 请求api时,参数未加效验: let _obj ={pa ...

  4. SpringBoot 优雅的参数效验!

    引言 不知道大家平时的业务开发过程中 controller 层的参数校验都是怎么写的?是否也存在下面这样的直接判断? public String add(UserVO userVO) {if(user ...

  5. Gin验证请求参数-自定义验证规则

    Gin对请求参数自定义验证规则可以分三步: 自定义结构体验证绑定binding标签 针对该标签定义验证方法 再将该验证方法注册到validator验证器里面 自定义结构体验证绑定binding标签 需 ...

  6. Go语言web框架 gin

    Go语言web框架 GIN gin是go语言环境下的一个web框架, 它类似于Martini, 官方声称它比Martini有更好的性能, 比Martini快40倍, Ohhhh-.看着不错的样子, 所 ...

  7. gin 项目结构_Gin框架中文文档

    最近更新时间:2019-02-20 Gin 是一个 go 写的 web 框架,具有高性能的优点.官方地址:https://github.com/gin-gonic/gin 目录 [TOC] 安装 要安 ...

  8. golang Gin Validator以及翻译校验

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 golang Gin - validator验证 前言 个人学习Gin 的记录,只作为记录,如果能帮助到别人,也希望为新手提供一些经验 ...

  9. 第22关 go的web框架-gin

    怕什么真理无穷,进一寸有一寸的欢喜. 第22关 go的web框架-gin 22-1 gin的helloworld体验 22-2 使用New和Default初始化路由器的区别 22-3 gin的路由分组 ...

  10. gin阶段学习(入门)

    文章目录 1.环境配置 2.测试运行 3.请求路由 3.1 多种请求类型 3.2 静态文件夹 3.3 参数作为URL 4.获取请求参数 4.1 获取get请求 4.2 泛绑定 4.3 获取body内容 ...

最新文章

  1. 高考623分却说自己是“反面教材”?外卖小哥最新发声!
  2. leetcode-26. Remove Duplicates from Sorted Array
  3. java十四章带参方法课后_java14带参的方法
  4. 基础补充:使用xlrd模块读取excel文件
  5. struts文件上传时异常问题
  6. IoC--structuremap
  7. vue单选框选中_vue中单选框与多选框的实现与美化
  8. 计算机二级考试试题在线看,【TOP182015年全国计算机二级考试试题题库.doc文档免费在线阅读材料】...
  9. WF4.0 基础篇 (二十九) WorkflowInspectionServices
  10. webview取java的参数值_Android 显示 WebView ,加载URL 时,向webview的 header 里面传递参数...
  11. OC中字符串的提取与替换-四种不同方法实现
  12. MAC系统如何连接Windows共享文件?MAC系统连接Win共享文件的方法
  13. python3.7如何使用enum_python3 enum模块
  14. mt6735通用recovery_mt6735刷机包下载
  15. Geth私链的多节点运行
  16. 只需4步,就能在SOLIDWORKS创建首件检验报告(FAI)
  17. 5G技术即将到来,5G网络的基本特点和应用你了解了多少
  18. Class-Balanced Loss Based on Effective Number of Samples - 1 - 论文学习
  19. Java算法_优先队列和PriorityQueue——HDU 1873:看病要排队
  20. 详解ReID的各部分组成及Trick——FastReID中的baseline配置

热门文章

  1. python 彩票图表下载_python彩票
  2. SCI论文的构思与常用结构
  3. ems与nms_求教OMC、EMS、NMS的区别和不同?
  4. 官方固件库V1.4版本介绍
  5. [置顶] 一个程序员的科幻小说
  6. OpenGL(十三)——Qt OpenGL绘制三维图形
  7. 在线CHM阅读器(1)——CHM文件格式概述
  8. 团队成员技术发展路线
  9. Cassandra中Gossip具体实现方式
  10. ring buffer示例