忽略
|  或
omitempty 有则验证,空值则不验证
dive  潜入到切片、数组、映射中,例如 NumList []int `validate:"len=2,dive,gt=18"` //切片长度为2,潜入切片后,里面的成员必须大于18
requiredrequired_with[_all]、 required_without[_all]   //required_with表示指定字段有值,则本字段必须有值;required_without表示指定字段没有值时,本字段必须有值;指定字段有值,则本字段有值无值都可以。
len  数字时等效于eq, 字符串时等效字符串长度(是rune长度,比如"世界"或"sj"都满足len=2的约束),切片或映射的话是元素的个数
max、min
eq、ne、{l|g}t[e]
oneof  例如 oneof=male female
alpha alphanum numeric hexadecimal

file  文件是否存在
contains(包含某个字符) containsany(包含任意一个给定字符串中的字符)  containsrune  excludes excludesall(不包含给定字符串中的所有字符) excludesrune
ip ipv4 ipv6 cidr cidrv{4|6} {tc|ud}p[{4|6}]_addr(就是多了端口号验证) fqdn eth_addr   可解析的IP地址(测试发现没觉得和ipv4、ipv6、ip标签有什么不同):ip[{4|6}]_addr mac 
email url uri base64 base64url(因为base64的+和/在url中有特殊意义)  uuid  uuid3 uuid4 uuid5

startswith( 以什么开始)  endswith(以什么结束)   v9版本及其之后才能支持
ascii asciiprint multibyte(多字节,比如汉字,注意:如果是空,校验也能通过)

v9版本支持:file dir unique alphaunicode alphanumunicode startswith endswith html html_encoded url_encoded

例子:

type user struct {
Name string `validate:"eq=bob|eq=tony"` //Name取值必须为bob或tony
Age int64 `validate:"gte=6,lte=13"` //Age取值必须为 6~13岁之间,可以用max=13,min=6代替
CodeList []string `validate:"omitempty,gte=3,dive,len=2,hexadecimal"` //CodeList要么没有值,要么至少三个成员,dive潜入成员:成员长度必须位2字节,16进制的。
}
type Output struct{
Enable bool
FileName string `validate:"required_with=Enable"` //当Enable==true时,FileName必须存在
MaxSize int `validate:"required_with=Enable, gt=2"` //当Enable==true时,MaxSize必须存在,且大于2
}

其他:

map验证:    Info  map[string]string `validate:"gt=0,dive,keys,eq=Name|eq=Alias,endkeys,required"` //gt=0表示map成员大于0, keys和endkeys中间的部分用来验证键,键名必须是Name和Alias,最后的required作用于值

Last int `validate:"gtcsfield=Sub.Age"` //Last字段比Sub这个子结构下的Age要大

unique  //保证切片、数组的元素唯一,映射的值唯一

latitude longitude  //纬度、经度

gopkg.in/go-playground/validator中比较有用的标签的更多相关文章

  1. 分享20款移动开发中很有用的 jQuery 插件

    今天,很显然每个网站都需要有一个移动优化的界面以提高移动用户的使用体验.在开发任何移动项目时,要尽可能保持每一种资源尺寸都尽可能的小,以给最终用户提供一个好的体验是非常重要的.在这篇文章中我们已经编制 ...

  2. 推荐25款php中非常有用的类库

    推荐25款php中非常有用的类库 投稿:hebedich 字体:[增加 减小] 类型:转载 时间:2014-09-29   作为一个PHP开发者,现在是一个令人激动的时刻.每天有许许多多有用的库分发出 ...

  3. SQL Server中一些有用的日期sql语句

    SQL Server中一些有用的日期sql语句 1.一个月第一天的 SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0) 2.本周的星期一 SELECT DA ...

  4. iconv简介(1、字符串|文件字符转换:iconv用于将一种已知的字符集文件转换成另一种已知的字符集文件)(2、编程语言函数功能的相似性:iconv不仅再php中有用,而且c语言中也有用,还有linux等)

    iconv简介(1.字符串|文件字符转换:iconv用于将一种已知的字符集文件转换成另一种已知的字符集文件)(2.编程语言函数功能的相似性:iconv不仅再php中有用,而且c语言中也有用,还有lin ...

  5. eclipse中最有用的10个快捷键

    这里列出一些在使用eclipse的过程中最有用的10个快捷键,通过灵活使用这些快捷键可以提高开发效率和开发质量. 1. [ctrl+shift+r]打开资源 这可能是所有快捷键中最省时间的了.这个快捷 ...

  6. HTML meta标签的用法及head中的一些常用标签

    meta是用来在HTML文档中模拟HTTP协议的响应头报文.meta主要为分HTTP标头信息(HTTP-EQUIV)和页面描述信息(NAME)标头信息包括文档类型.字符集.语言等浏览器正确显示网页的信 ...

  7. 沉淀,再出发:sublime中快捷键和html标签的使用和生成以及使用markdown

    沉淀,再出发:sublime中快捷键和html标签的使用和生成以及使用markdown 一.前言 工欲善其事,必先利其器.在软件代码的编写中,一定要知道IDE或者编辑器的快捷键的使用,这样可以提高很多 ...

  8. jquery-validator中js校验及标签校验的使用

    jquery-validator中js校验及标签校验的使用: 1.项目中引入jquery.validate.js  官方网站:http://bassistance.de/  http://jquery ...

  9. 移动端网站如何开发(电脑端网站到手机端网站我们需要在html代码中添加哪个meta标签)

    移动端网站如何开发(电脑端网站到手机端网站我们需要在html代码中添加哪个meta标签) 一.总结 一句话总结: 添加viewport标签:meta name="viewport" ...

  10. javaWeb中struts开发——Logic标签

    1.Struts标签的logic标签 Logic标签是逻辑标签,是Struts中比较重要的标签,完成各种逻辑运算操作,可以直接支持全局调转. 2.1<logic:present><l ...

随机推荐

  1. 文盘Rust -- r2d2 实现redis连接池

    作者:贾世闻 我们在开发应用后端系统的时候经常要和各种数据库.缓存等资源打交道.这一期,我们聊聊如何访问redis 并将资源池化. 在一个应用后端程序访问redis主要要做的工作有两个,单例和池化. ...

  2. elementUI自定义单选框内容

    <template> <div> <div class="heng-div"> <el-radio v-model="radio ...

  3. Vant中List列表下拉加载更多

    van-list上只有一层父级元素div,多了可能下拉加载出不来:或者更多 <template> <div class="scholl-declarepage"& ...

  4. 根据TxID获取上链数据

    根据TxID获取上链信息 前段时间应甲方爸爸的要求,需要在现有的业务系统中新增一个根据TxID来查询上链信息的接口.搜了一圈发现相关的信息很少,最后只能祭出终极大招:Read Source Code. ...

  5. 数据挖掘[一]---汽车车交易价格预测(测评指标;EDA)

    题目出自阿里天池赛题链接:零基础入门数据挖掘 - 二手车交易价格预测-天池大赛-阿里云天池 相关文章: 特征工程详解及实战项目[参考] 数据挖掘---汽车车交易价格预测[一](测评指标:EDA) 数据 ...

  6. Midjourney|文心一格prompt教程[技巧篇]:生成多样性、增加艺术风格、图片二次修改、渐进优化、权重、灯光设置等17个技巧等你来学

    Midjourney|文心一格prompt教程[技巧篇]:生成多样性.增加艺术风格.图片二次修改.渐进优化.权重.灯光设置等17个技巧等你来学 1.技巧一:临摹 我认为学习图片类的 prompt,跟学 ...

  7. 使用s3fs-fuse挂载minio文件时无法删除问题排查过程

    使用s3fs-fuse挂载minio文件时无法删除问题排查过程 结论:部分场景无法满足,具体问题详见正文 1. 部署minio docker run    -p 9000:9100    -p 909 ...

  8. 【链表】【python】力扣24. 两两交换链表中的节点【超详细的注释和解释】

    目录 说在前面的话 前言 一.题目(力扣24. 两两交换链表中的节点) 二.题目分析 实现完整代码(Python实现) 总结 说在前面的话 博主也好长一段时间没有更新力扣的刷题系列了,今天给大家带来一 ...

  9. 2022 JuiceFS 社区用户调研结果出炉

    为了使 JuiceFS 的发展更贴合用户的真实需求,我们在三周前向社区发出了一份调研问卷.此次调研面向已经将 JuiceFS 应用于生产环境的用户,了解其在应用 JuiceFS 前和使用中的体验与评价 ...

  10. XmlDocument 解决 Clone、CloneNode、ImportNode 等节点克隆后的标签自闭合问题

    前言: 这两天在对 Taurus.Mvc 做 html 加载性能优化时,发现存在这个问题. 具体优化的是 CYQ.Data 组件的 XHtmlAction 相关类. 问题过程: 之前 XmlDocum ...