validator参数校验
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参数校验的更多相关文章
- Hibernate Validator参数校验
日常开发中经常会遇到需要参数校验的情况,比如某个字段不能为空.长度不能超过5等都属于参数校验的范围.对于简单的参数校验通过写几个if-else判断语句就搞定,但是对于复杂的多个参数校验的情况,就不是那 ...
- hibernate validator参数校验&自定义校验注解
参数校验:简单的就逐个手动写代码校验,推荐用Valid,使用hibernate-validator提供的,如果参数不能通过校验,报400错误,请求格式不正确: 步骤1:在参数对象的属性上添加校验注解如 ...
- validator 参数校验的常用注解
@AssertFalse Boolean,boolean 验证注解的元素值是false @AssertTrue Boolean,boolean 验证注解的元素值是true @NotNull 任意类型 ...
- SpringBoot 参数校验的方法
Introduction 有参数传递的地方都少不了参数校验.在web开发中,前端的参数校验是为了用户体验,后端的参数校验是为了安全.试想一下,如果在controller层中没有经过任何校验的参数通过s ...
- SpringBoot 如何进行参数校验,老鸟们都这么玩的!
大家好,我是飘渺. 前几天写了一篇 SpringBoot如何统一后端返回格式?老鸟们都是这样玩的! 阅读效果还不错,而且被很多号主都转载过,今天我们继续第二篇,来聊聊在SprinBoot中如何集成参数 ...
- validator库参数校验
目录 validator库参数校验若干实用技巧 基本示例 翻译校验错误提示信息 自定义错误提示信息的字段名 自定义结构体校验方法 自定义字段校验方法 自定义翻译方法 validator库参数校验若干实 ...
- gin使用validator库参数校验若干实用技巧
validator库参数校验若干实用技巧 本文介绍了使用validator库做参数校验的一些十分实用的使用技巧,包括翻译校验错误提示信息.自定义提示信息的字段名称.自定义校验方法等. validato ...
- SpringMVC参数校验(针对`@RequestBody`返回`400`)
SpringMVC参数校验(针对@RequestBody返回400) 前言 习惯别人帮忙做事的结果是自己不会做事了.一直以来,spring帮我解决了程序运行中的各种问题,我只要关心我的业务逻辑,设计好 ...
- python项目使用jsonschema进行参数校验
python项目使用jsonschema进行参数校验 最近想要给一个新的openstack项目加上参数校验,过完年回来准备开工的时候,发现其他人已经在做了,对应的patch是:https://revi ...
随机推荐
- 关于jar包和war读取静态文件
在war包中static中的静态文件,打成jar包后却读取不到,这是为什么呢,让我门看下两种读取的区别 一.war包中都取静态模板文件 public static void download(Stri ...
- 《剑指offer》面试题58 - I. 翻转单词顺序
问题描述 输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变.为简单起见,标点符号和普通字母一样处理.例如输入字符串"I am a student. ",则输出&quo ...
- BUU XSS COURSE 1 & [CISCN2019 华东北赛区]Web2
BUU XSS COURSE 1 & [CISCN2019 华东北赛区]Web2 XSS的题目没怎么做过,比赛基本上也没有(=_=),总结下今天做的两题 都是看赵总视频现学现做的,这里附上学习 ...
- Golang 记录
Golang 笔记 1. hello Golang 新建项目,推荐GoLand工具 GOPATH目录:D:\go\awesomeProject 三个标准目录:bin,pkg,src MAIN目录:D: ...
- 【经验总结】VSCode中找不到numpy/matplotlib/pillow,navigator没了
在VSCode中写python时,import numpy和matplotlib总是报错找不到模块,用conda list和pip list看到都安装了numpy,前后折腾了很久遇到了好几个问题: 无 ...
- Python中的路径
转义 windows路径使用的是\,linux路径使用的是/. 特别的,在windows系统中如果有这样的一个路径 D:\nxxx\txxx\x1,程序会报错.因为在路径中存在特殊符 \n(换行符)和 ...
- vue学习4-class和sytle绑定
#### Class绑定: 1. 通过数组的方式来实现: 2. 通过对象的方式来实现: 通过对象: 通过数组,通过数组是把多个style样式对象添加进去:
- Qt之进入和出去和关闭事件
widget.h: #ifndef WIDGET_H #define WIDGET_H #include <QWidget> #include<QEvent> class Wi ...
- Ansible + shell 实现部署fastdfs+nginx 实现图片服务器并提供动态缩放功能;
因为公司阿里服务器变动几次,手动部署了好几次fastdfs+nginx,于是就想到了自动化部署,以下为脚本内容,由于只是想把着功能实现,并未有完完整的判断逻辑: 以下为ansible-playbook ...
- Web开发底层是Servlet
SpringMVC:是基于spring的一个框架,实际上就是spring的一个模块,专门是做web开发. 可以理解成servlet是一个升级 web开发底层是servlet,框架是在servlet基础 ...