main.go 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. package main
  2. import (
  3. "fmt"
  4. "github.com/go-playground/validator"
  5. )
  6. var validate = validator.New()
  7. func main() {
  8. type Inner struct {
  9. ContainsString string `validate:"contains=111"`
  10. }
  11. inner := &Inner{ContainsString: "11@"}
  12. err := validate.Struct(inner)
  13. if err != nil {
  14. fmt.Println(err.Error())
  15. }
  16. //required 必填验证
  17. type RequiredTest struct {
  18. Name string
  19. Age int `validate:"required"`
  20. }
  21. //requiredTest := &RequiredTest{Name:"11111",Age:10}
  22. requiredTest := &RequiredTest{Name: "11111"}
  23. err = validate.Struct(requiredTest)
  24. if err != nil {
  25. fmt.Println(err.Error())
  26. }
  27. //len 长度限制
  28. type LenTest struct {
  29. Name string `validate:"len=3"`
  30. Age int
  31. }
  32. //lenTest := &LenTest{Name:"111"}
  33. lenTest := &LenTest{Name: "1111"}
  34. err = validate.Struct(lenTest)
  35. if err != nil {
  36. fmt.Println(err.Error())
  37. }
  38. // eq 等于
  39. type EqTest struct {
  40. Name string
  41. Age int `validate:"eq=3"`
  42. }
  43. //eqTest := &EqTest{Age:3}
  44. eqTest := &EqTest{Age: 10}
  45. err = validate.Struct(eqTest)
  46. if err != nil {
  47. fmt.Println(err.Error())
  48. }
  49. // gt 大于
  50. type GtTest struct {
  51. Name string
  52. Age int `validate:"gt=3"`
  53. }
  54. //gtTest := &GtTest{Age:10}
  55. gtTest := &GtTest{Age: 3}
  56. err = validate.Struct(gtTest)
  57. if err != nil {
  58. fmt.Println(err.Error())
  59. }
  60. // gte 等于
  61. type GteTest struct {
  62. Name string
  63. Age int `validate:"gte=3"`
  64. }
  65. gteTest := &GteTest{Age: 2}
  66. //gteTest := &GteTest{Age:3}
  67. err = validate.Struct(gteTest)
  68. if err != nil {
  69. fmt.Println(err.Error())
  70. }
  71. //lt 小于
  72. type LtTest struct {
  73. Name string
  74. Age int `validate:"lt=5"`
  75. }
  76. //ltTest := &LtTest{Age:2}
  77. ltTest := &LtTest{Age: 8}
  78. err = validate.Struct(ltTest)
  79. if err != nil {
  80. fmt.Println(err.Error())
  81. }
  82. //lte 小于等于
  83. type LteTest struct {
  84. Name string
  85. Age int `validate:"lte=5"`
  86. }
  87. lteTest := &LteTest{Age: 2}
  88. //lteTest := &LteTest{Age:8}
  89. err = validate.Struct(lteTest)
  90. if err != nil {
  91. fmt.Println(err.Error())
  92. }
  93. //eqfield 同一结构体字段相等
  94. type EqfieldTest struct {
  95. Name string
  96. Age int `validate:"eqfield=Count"`
  97. Count int
  98. }
  99. //eqfieldTest := &EqfieldTest{Age:2,Count:2}
  100. eqfieldTest := &EqfieldTest{Age: 2, Count: 10}
  101. err = validate.Struct(eqfieldTest)
  102. if err != nil {
  103. fmt.Println(err.Error())
  104. }
  105. //min 最小值
  106. type MinTest struct {
  107. Name string
  108. Age int `validate:"min=18"`
  109. Count int
  110. }
  111. minTest := &MinTest{Age:12,Count:2}
  112. //minTest := &MinTest{Age: 18, Count: 10}
  113. err = validate.Struct(minTest)
  114. if err != nil {
  115. fmt.Println(err.Error())
  116. }
  117. //max 最大值
  118. type MaxTest struct {
  119. Name string
  120. Age int `validate:"max=18"`
  121. }
  122. //maxTest := &MaxTest{Age:12}
  123. maxTest := &MaxTest{Age: 20}
  124. err = validate.Struct(maxTest)
  125. if err != nil {
  126. fmt.Println(err.Error())
  127. }
  128. //oneof 其中之一
  129. type OneofTest struct {
  130. Name string
  131. Age int `validate:"oneof=10 15"`
  132. }
  133. oneofTest := &OneofTest{Age:12}
  134. //oneofTest := &OneofTest{Age:10}
  135. err = validate.Struct(oneofTest)
  136. if err != nil {
  137. fmt.Println(err.Error())
  138. }
  139. //email 是否包含电子邮件
  140. type EmailTest struct {
  141. Email string `validate:"email"`
  142. Age int
  143. }
  144. //emailTest := &EmailTest{Email:"123qq.com"} //不通过
  145. //emailTest := &EmailTest{Email:"123@com"} //不通过
  146. //emailTest := &EmailTest{Email:"123@q.com"} //通过
  147. //emailTest := &EmailTest{Email:"123-@q.com"} //通过
  148. emailTest := &EmailTest{Email:"@q.com"} //不通过
  149. //emailTest := &EmailTest{Email:"帅@q.com"} //通过
  150. err = validate.Struct(emailTest)
  151. if err != nil {
  152. fmt.Println(err.Error())
  153. }
  154. }