golang validator 校验参数

https://www.cnblogs.com/jiujuan/p/13823864.html

type User struct {
    Name string `json:"name" validate:"min=0,max=35"`
    Age  unit8  `json:"age" validate:"lte=90,gte=0"`
}

type User struct { 
    Name string `validate:"contains=tom"` 
    Age int `validate:"min=1"`
}

ip:字段值是否包含有效的IP地址,validate:"ip"
ipv4:字段值是否包含有效的ipv4地址,validate:"ipv4"
ipv6:字段值是否包含有效的ipv6地址,validate:"ipv6"
uri:字段值是否包含有效的uri,validate:"uri"
url:字段值是否包含有效的uri,validate:"url"

required关键字表示该字段不能为默认值,否则报错

var validate *validator.Validate
    validate = validator.New()

    myEmail := "joeybloggs@gmail.com"
    errs := validate.Var(myEmail, "required,email") // 只有m
    if errs != nil {
        fmt.Println(errs)
    }

    var i int
    errs = validate.Var(i, "gt=1,lt=10") // 只有i的值在区间(1,10)内才满足判断条件(gt=greater than, lt=less than)

    user := map[string]interface{}{"name": "Arshiya Kiani", "email": "zytel3301.gmail.com"}
    rules := map[string]interface{}{"name": "required,min=8,max=32", "email": "omitempty,required,email"}
    validateMap := validate.ValidateMap(user, rules)
    for k, v := range validateMap {
        fmt.Println(k, v)
    }
评论