validator参数校验

type Req struct {
Sn string `json:"sn" binding:"required"`
} email:邮箱验证 // 这将验证字符串值是否包含有效的电子邮件。
eg:binding:"email" required:必填 // 对于数字,确保值不为零。对于字符串,确保值不是“”。对于切片、映射、指针、接口、通道和函数,确保值不为零。
eg:binding:"required" required_with:必填 // 对于数字,不为空就行。对于字符串,确保值不是“”,对于切片、映射、指针、接口、通道和函数,确保值不为零。
eg:binding:"required_with" len:长度 //对于字符串,它会检查字符串长度是否恰好是该字符数。对于切片、数组和映射,验证项目数。
eg:binding:"len=10" max:最大值 // 确保该值小于或等于给定的参数。对于字符串,它会检查字符串长度是否最多为该字符数。对于切片、数组和映射,验证项目数。
eg:binding:"max=10" min:最小值 //确保该值大于或等于给定的参数。对于字符串,它会检查字符串长度是否至少为该字符数。对于切片、数组和映射,验证项目数。
eg:binding:"min=10" eq:等于(=) //对于字符串和数字,eq 将确保值等于给定的参数。对于切片、数组和映射,验证项目数。
gt:大于(>)
lt:小于(<)
gte:大于等于(>=)
lte:小于等于(=<)
ne:不等与(!=)
eg:binding:"eq=10"
eg:binding:"gt=10" oneof:之一 //对于字符串、整数和 uint,oneof 将确保该值是参数中的值之一。该参数应该是由空格分隔的值列表。值可以是字符串或数字
eg:binding:"oneof=1 3 5 7" eqfield:等于另一个字段 //通常重复密码校验
eg:type user struct {
Password string `json:"password" binding:"required"`
RePassword string `json:"re_password" binding:"required,eqfield=Password"`
} nefield:不等于另一个字段 //这将根据结构内或传入的字段中的另一个字段值验证字段值。
gtfield:大于另一个字段
gtefield:大于等于另一个字段
ltfield:小于另一个字段
ltefield:小于等于另一个字段 unique:唯一 //对于数组和切片,唯一的将确保没有重复。对于地图,唯一性将确保没有重复值。对于结构切片,unique 将确保通过参数指定的结构字段中没有重复值。
eg:binding:"unique" alphanum:字母数字 //这验证字符串值仅包含 ASCII 字母数字字符
eg:binding:"alphanum" alphaunicode: unicode字母字符//这验证字符串值仅包含unicode字母字符
eg:binding:"alphaunicode" alphanumunicode:unicode 字母数字字符 //这验证字符串值仅包含 unicode 字母数字字符
eg:binding:"alphanumunicode" numeric:数字 //是否包含基本数值。基本排除指数等...对于整数或浮点它返回真。 hexadecimal:是否包含有效的十六进制 hexcolor:是否包含有效的十六进制颜色,包括标签 (#) rgb:这将验证字符串值是否包含有效的 rgb 颜色 rgba:这将验证字符串值是否包含有效的 rgba 颜色 hsl:这将验证字符串值是否包含有效的 hsl 颜色 url: 网址//这验证了一个字符串值是否包含一个有效的 url 这将接受 golang 请求 uri 接受的任何 url,但必须包含一个模式,例如 http:// 或 rtmp:// base64:是否包含有效的 base64值 btc_addr:是否包含一个有效的比特币地址 eth_addr: 是否包含有效的以太坊地址 startswith:是否以什么开头的字符串 // 这验证字符串值是否以提供的字符串值开头
eg:binding:"startswith=Jeff" // 验证字符串是否以"Jeff"开头 endswith:是否以什么结尾的字符串 // 这验证字符串值是否以提供的字符串值结尾
eg:binding:"endswith=eileen" // 验证字符串是否以"eileen"结尾 uuid: 是否包含有效的 UUID // 这将验证字符串值是否包含有效的 UUID。大写 UUID 值不会通过 - 请改用 `uuid_rfc4122` ASCII:这将验证字符串值仅包含 ASCII 字符 multibyte:是否包含一个或多个多字节字符 latitude:纬度
longitude:经度 ip:这将验证字符串值是否包含有效的 IP 地址。
ipv4:这将验证字符串值是否包含有效的 IPv4 地址。
ipv6:这将验证字符串值是否包含有效的 IPv6 地址。 tcp_addr: 这将验证字符串值是否包含有效的可解析 TCP 地址。
tcp4_addr:这将验证字符串值是否包含有效的可解析 TCPv4 地址。
tcp6_addr:这将验证字符串值是否包含有效的可解析 TCPv6 地址。 udp_addr: 这将验证字符串值是否包含有效的可解析 UDP 地址。
udp4_addr: 这将验证字符串值是否包含有效的可解析 UDPv4 地址。
udp6_addr: 这将验证字符串值是否包含有效的可解析 UDPv6 地址。 html: 字符串是否为一个 HTML 元素标签

validator参数校验的更多相关文章

  1. Hibernate Validator参数校验

    日常开发中经常会遇到需要参数校验的情况,比如某个字段不能为空.长度不能超过5等都属于参数校验的范围.对于简单的参数校验通过写几个if-else判断语句就搞定,但是对于复杂的多个参数校验的情况,就不是那 ...

  2. hibernate validator参数校验&自定义校验注解

    参数校验:简单的就逐个手动写代码校验,推荐用Valid,使用hibernate-validator提供的,如果参数不能通过校验,报400错误,请求格式不正确: 步骤1:在参数对象的属性上添加校验注解如 ...

  3. validator 参数校验的常用注解

    @AssertFalse Boolean,boolean 验证注解的元素值是false @AssertTrue Boolean,boolean 验证注解的元素值是true @NotNull 任意类型 ...

  4. SpringBoot 参数校验的方法

    Introduction 有参数传递的地方都少不了参数校验.在web开发中,前端的参数校验是为了用户体验,后端的参数校验是为了安全.试想一下,如果在controller层中没有经过任何校验的参数通过s ...

  5. SpringBoot 如何进行参数校验,老鸟们都这么玩的!

    大家好,我是飘渺. 前几天写了一篇 SpringBoot如何统一后端返回格式?老鸟们都是这样玩的! 阅读效果还不错,而且被很多号主都转载过,今天我们继续第二篇,来聊聊在SprinBoot中如何集成参数 ...

  6. validator库参数校验

    目录 validator库参数校验若干实用技巧 基本示例 翻译校验错误提示信息 自定义错误提示信息的字段名 自定义结构体校验方法 自定义字段校验方法 自定义翻译方法 validator库参数校验若干实 ...

  7. gin使用validator库参数校验若干实用技巧

    validator库参数校验若干实用技巧 本文介绍了使用validator库做参数校验的一些十分实用的使用技巧,包括翻译校验错误提示信息.自定义提示信息的字段名称.自定义校验方法等. validato ...

  8. SpringMVC参数校验(针对`@RequestBody`返回`400`)

    SpringMVC参数校验(针对@RequestBody返回400) 前言 习惯别人帮忙做事的结果是自己不会做事了.一直以来,spring帮我解决了程序运行中的各种问题,我只要关心我的业务逻辑,设计好 ...

  9. python项目使用jsonschema进行参数校验

    python项目使用jsonschema进行参数校验 最近想要给一个新的openstack项目加上参数校验,过完年回来准备开工的时候,发现其他人已经在做了,对应的patch是:https://revi ...

随机推荐

  1. Bootstrap实战 - 注册和登录

    一.介绍 注册和登录在社交和商业网站中是必不可少的一个部分. 二.知识点 2.1 标签页 2.1.1 基础标签页 标签页的使用与导航栏类似,同时都依赖于基础样式 nav,不同的是附加样式变成了 nav ...

  2. Ubuntu 18.04 server安装+搭建Seacms v10.1网站

    0x00 写在前面 以前我天真的认为,ubuntu Desktop会安装了,server就无所谓了,其实完全不然,server还是有一些坑点的. 之所以选择Seacms搭建网站,是因为这个SeaCMS ...

  3. 嵌入式学习第四步—C语言学习用软件安装

    学习一门计算机语言,不能光靠看书,最主要的是要动手联系.不记得从哪里看到过,要成为一名网络大牛,要有10万行以上的程序才是基础. 首先需要一个能够编辑程序的地方(IDE),经过大约10天的网上看各种视 ...

  4. Ubuntu16桌面版编译和安装OpenCV4

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  5. 【初体验】valgrind分析程序性能

    wget https://fossies.org/linux/misc/valgrind-3.15.0.tar.bz2 tar -jxvf valgrind-3.15.0.tar.bz2 cd val ...

  6. vue学习11-监听属性

    <!DOCTYPE html> <html lang='en'> <head> <meta charset='UTF-8'> <meta http ...

  7. 学习OAuth 2.0

    认识OAuth 2.0 OAuth 2.0 是行业标准的授权协议. OAuth 2.0 专注于客户端开发人员的简单性,同时为 Web 应用程序.桌面应用程序.移动设备提供特定的授权流程. 应用场景 有 ...

  8. P3224 [HNOI2012]永无乡 题解

    P3224 [HNOI2012]永无乡 题解 题意概括 有若干集合,每个集合最初包含一个值,和一个编号1~n.两个操作:合并两个集合,查询包含值x的集合中第k大值最初的集合编号. 思路 维护集合之间关 ...

  9. Python 使用 Windows10 桌面通知

    前言 Win10 没有提供简单命令行方式来触发桌面通知,所以使用 Python 来写通知脚本. 一番搜索,找到 win10toast .但这开源仓库已无人维护,通过 github fork 的关系图, ...

  10. Python初学笔记之可变类型、不可变类型

    python中 可变类型: 列表 list 字典 dict 不可变类型: 数字型:int.float.complex.bool.long 字符型 str 元组 tuple id(i):通过id查看变量 ...