zoukankan      html  css  js  c++  java
  • gopkg.in/go-playground/validator中比较有用的标签

    忽略
    |  或
    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  //纬度、经度

  • 相关阅读:
    将截断字符串或二进制数据。语句已终止的解决方法
    201812-1 小明上学 Java
    201809-2 买菜 Java
    201809-1 卖菜 Java
    201803-2 碰撞的小球 Java
    201803-1 跳一跳 Java
    201712-2 游戏 Java
    201712-1 最小差值 Java
    201709-2 公共钥匙盒 Java
    201709-1 打酱油 Java
  • 原文地址:https://www.cnblogs.com/mind-water/p/11065046.html
Copyright © 2011-2022 走看看