| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172 |
- package main
- import (
- "fmt"
- "github.com/go-playground/validator"
- )
- var validate = validator.New()
- func main() {
- type Inner struct {
- ContainsString string `validate:"contains=111"`
- }
- inner := &Inner{ContainsString: "11@"}
- err := validate.Struct(inner)
- if err != nil {
- fmt.Println(err.Error())
- }
- //required 必填验证
- type RequiredTest struct {
- Name string
- Age int `validate:"required"`
- }
- //requiredTest := &RequiredTest{Name:"11111",Age:10}
- requiredTest := &RequiredTest{Name: "11111"}
- err = validate.Struct(requiredTest)
- if err != nil {
- fmt.Println(err.Error())
- }
- //len 长度限制
- type LenTest struct {
- Name string `validate:"len=3"`
- Age int
- }
- //lenTest := &LenTest{Name:"111"}
- lenTest := &LenTest{Name: "1111"}
- err = validate.Struct(lenTest)
- if err != nil {
- fmt.Println(err.Error())
- }
- // eq 等于
- type EqTest struct {
- Name string
- Age int `validate:"eq=3"`
- }
- //eqTest := &EqTest{Age:3}
- eqTest := &EqTest{Age: 10}
- err = validate.Struct(eqTest)
- if err != nil {
- fmt.Println(err.Error())
- }
- // gt 大于
- type GtTest struct {
- Name string
- Age int `validate:"gt=3"`
- }
- //gtTest := &GtTest{Age:10}
- gtTest := &GtTest{Age: 3}
- err = validate.Struct(gtTest)
- if err != nil {
- fmt.Println(err.Error())
- }
- // gte 等于
- type GteTest struct {
- Name string
- Age int `validate:"gte=3"`
- }
- gteTest := &GteTest{Age: 2}
- //gteTest := &GteTest{Age:3}
- err = validate.Struct(gteTest)
- if err != nil {
- fmt.Println(err.Error())
- }
- //lt 小于
- type LtTest struct {
- Name string
- Age int `validate:"lt=5"`
- }
- //ltTest := &LtTest{Age:2}
- ltTest := &LtTest{Age: 8}
- err = validate.Struct(ltTest)
- if err != nil {
- fmt.Println(err.Error())
- }
- //lte 小于等于
- type LteTest struct {
- Name string
- Age int `validate:"lte=5"`
- }
- lteTest := &LteTest{Age: 2}
- //lteTest := &LteTest{Age:8}
- err = validate.Struct(lteTest)
- if err != nil {
- fmt.Println(err.Error())
- }
- //eqfield 同一结构体字段相等
- type EqfieldTest struct {
- Name string
- Age int `validate:"eqfield=Count"`
- Count int
- }
- //eqfieldTest := &EqfieldTest{Age:2,Count:2}
- eqfieldTest := &EqfieldTest{Age: 2, Count: 10}
- err = validate.Struct(eqfieldTest)
- if err != nil {
- fmt.Println(err.Error())
- }
- //min 最小值
- type MinTest struct {
- Name string
- Age int `validate:"min=18"`
- Count int
- }
- minTest := &MinTest{Age:12,Count:2}
- //minTest := &MinTest{Age: 18, Count: 10}
- err = validate.Struct(minTest)
- if err != nil {
- fmt.Println(err.Error())
- }
- //max 最大值
- type MaxTest struct {
- Name string
- Age int `validate:"max=18"`
- }
- //maxTest := &MaxTest{Age:12}
- maxTest := &MaxTest{Age: 20}
- err = validate.Struct(maxTest)
- if err != nil {
- fmt.Println(err.Error())
- }
- //oneof 其中之一
- type OneofTest struct {
- Name string
- Age int `validate:"oneof=10 15"`
- }
- oneofTest := &OneofTest{Age:12}
- //oneofTest := &OneofTest{Age:10}
- err = validate.Struct(oneofTest)
- if err != nil {
- fmt.Println(err.Error())
- }
- //email 是否包含电子邮件
- type EmailTest struct {
- Email string `validate:"email"`
- Age int
- }
- //emailTest := &EmailTest{Email:"123qq.com"} //不通过
- //emailTest := &EmailTest{Email:"123@com"} //不通过
- //emailTest := &EmailTest{Email:"123@q.com"} //通过
- //emailTest := &EmailTest{Email:"123-@q.com"} //通过
- emailTest := &EmailTest{Email:"@q.com"} //不通过
- //emailTest := &EmailTest{Email:"帅@q.com"} //通过
- err = validate.Struct(emailTest)
- if err != nil {
- fmt.Println(err.Error())
- }
- }
|