内容简介:版权声明:本文为博主尹成联系QQ77025077,微信18510341407原创文章,欢迎转载侵权不究。 https://blog.csdn.net/yincheng01/article/details/84102955
版权声明:本文为博主尹成联系QQ77025077,微信18510341407原创文章,欢迎转载侵权不究。 https://blog.csdn.net/yincheng01/article/details/84102955
#安装及测试
##安装:
go get github.com/astaxie/beego/validation
##测试:
go test github.com/astaxie/beego/validation
import ( "github.com/astaxie/beego/validation" "log" ) type User struct { Name string Age int } func main() { u := User{"man", 40} valid := validation.Validation{} valid.Required(u.Name, "name") valid.MaxSize(u.Name, 15, "nameMax") valid.Range(u.Age, 0, 18, "age") if valid.HasErrors() { // 如果有错误信息,证明验证没通过 // 打印错误信息 for _, err := range valid.Errors { log.Println(err.Key, err.Message) } } // or use like this if v := valid.Max(u.Age, 140, "age"); !v.Ok { log.Println(v.Error.Key, v.Error.Message) } // 定制错误信息 minAge := 18 valid.Min(u.Age, minAge, "age").Message("少儿不宜!") // 错误信息格式化 valid.Min(u.Age, minAge, "age").Message("%d不禁", minAge) }
通过 StructTag 使用示例:
import ( "log" "strings" "github.com/astaxie/beego/validation" ) // 验证函数写在 "valid" tag 的标签里 // 各个函数之间用分号 ";" 分隔,分号后面可以有空格 // 参数用括号 "()" 括起来,多个参数之间用逗号 "," 分开,逗号后面可以有空格 // 正则函数(Match)的匹配模式用两斜杠 "/" 括起来 // 各个函数的结果的 key 值为字段名.验证函数名 type user struct { Id int Name string `valid:"Required;Match(/^Bee.*/)"` // Name 不能为空并且以 Bee 开头 Age int `valid:"Range(1, 140)"` // 1 <= Age <= 140,超出此范围即为不合法 Email string `valid:"Email; MaxSize(100)"` // Email 字段需要符合邮箱格式,并且最大长度不能大于 100 个字符 Mobile string `valid:"Mobile"` // Mobile 必须为正确的手机号 IP string `valid:"IP"` // IP 必须为一个正确的 IPv4 地址 } // 如果你的 struct 实现了接口 validation.ValidFormer // 当 StructTag 中的测试都成功时,将会执行 Valid 函数进行自定义验证 func (u *user) Valid(v *validation.Validation) { if strings.Index(u.Name, "admin") != -1 { // 通过 SetError 设置 Name 的错误信息,HasErrors 将会返回 true v.SetError("Name", "名称里不能含有 admin") } } func main() { valid := validation.Validation{} u := user{Name: "Beego", Age: 2, Email: "dev@beego.me"} b, err := valid.Valid(&u) if err != nil { // handle error } if !b { // validation does not pass // blabla... for _, err := range valid.Errors { log.Println(err.Key, err.Message) } } }
StructTag 可用的验证函数:
- Required 不为空,即各个类型要求不为其零值
- Min(min int) 最小值,有效类型:
int
,其他类型都将不能通过验证 - Max(max int) 最大值,有效类型:
int
,其他类型都将不能通过验证 - MinSize(min int) 最小长度,有效类型:
string,slice
,其他类型都将不能通过验证 - MaxSize(max int) 最大长度,有效类型:
string,slice
,其他类型都将不能通过验证 - Length(length int) 指定长度,有效类型:
string,slice
,其他类型都将不能通过验证 - Numeric数字,有效类型:
string
,其他类型都将不能通过验证 - AlphaNumeric alpha字符或数字,有效类型:
string
,其他类型都将不能通过验证 - Match(pattern string)正则匹配,有效类型:
string
,其他类型都将被转成字符串再匹配(fmt.Sprintf(“%v”, obj).Match)
- IP
IP
格式,目前只支持 IPv4格式验证,有效类型:string
,其他类型都将不能通过验证 - Base64 base64编码,有效类型:
string
,其他类型都将不能通过验证 - Tel固定电话号,有效类型:
string
,其他类型都将不能通过验证 - Phone手机号或固定电话号,有效类型:
string
,其他类型都将不能通过验证 - ZipCode邮政编码,有效类型:
string
,其他类型都将不能通过验证
学院 Go 语言视频主页
https://edu.csdn.net/lecturer/1928扫码获取海量视频及源码 QQ群:721929980
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
企业应用架构模式
Martin Fowler / 人民邮电出版社 / 2009 / 79.00元
随着信息技术的广泛应用,系统需要处理的数据量越来越大,企业级软件开发已经渐成主流,而开发人员面临的困难与挑战也是显而易见的。更糟糕的是,这一领域的资料一直非常缺乏。 本书是软件开发大师Martin Fowler的代表作,采用模式的形式系统总结了业界多年积累的经验,被称为“企业级应用开发领域的圣经”,出版以来一直畅销不衰,至今仍然无可替代。作 者在精彩地阐述了企业应用开发和设计中的核心原则基础......一起来看看 《企业应用架构模式》 这本书的介绍吧!