govalidator----结构体tag验证
Posted zhzhlong
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了govalidator----结构体tag验证相关的知识,希望对你有一定的参考价值。
github地址:https://github.com/asaskevich/govalidator
govalidator支持内置支持的验证tag和自定义验证tag:
package main import ( "github.com/asaskevich/govalidator" "fmt" "strings" ) type Server struct { ID string `valid:"uuid,required"` Name string `valid:"machine_id"` HostIP string `valid:"ip"` MacAddress string `valid:"mac,required"` WebAddress string `valid:"url"` AdminEmail string `valid:"email"` } func main() { server := &Server{ ID: "123e4567-e89b-12d3-a456-426655440000", Name: "IX01", HostIP: "127.0.0.1", MacAddress: "01:23:45:67:89:ab", WebAddress: "www.example.com", AdminEmail: "[email protected]", } //自定义tag验证函数 machine_id就是自定义的tag govalidator.TagMap["machine_id"] = govalidator.Validator(func(str string) bool { return strings.HasPrefix(str, "IX") }) if ok, err := govalidator.ValidateStruct(server); err != nil { panic(err) } else { fmt.Printf("OK: %v ", ok) } }
以上是关于govalidator----结构体tag验证的主要内容,如果未能解决你的问题,请参考以下文章