码迷,mamicode.com
首页 > 其他好文 > 详细

govalidator----结构体tag验证

时间:2018-11-28 19:09:40      阅读:227      评论:0      收藏:0      [点我收藏+]

标签:支持   lse   server   test   bad   str   ESS   asa   https   

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: "admin@exmaple.com",
    }

    //自定义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\n", ok)
    }
}

 

govalidator----结构体tag验证

标签:支持   lse   server   test   bad   str   ESS   asa   https   

原文地址:https://www.cnblogs.com/zhzhlong/p/10033671.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!