<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      gin表單驗(yàn)證顯示中文

      概述

      官網(wǎng)-驗(yàn)證器包

      例子

      使用反射發(fā)的方式

      簡(jiǎn)單使用

      package main
      
      import (
      	"fmt"
      
      	"gopkg.in/go-playground/validator.v9"
      )
      
      // 安裝   go get gopkg.in/go-playground/validator.v9
      
      type InputLogin struct {
      	Email    string `validate:"required,email"`
      	Password string `validate:"required,max=16,min=6"`
      	Code     int    `validate:"gte=1000,lte=9999"`
      }
      
      func main() {
      	v := validator.New()
      	input := &InputLogin{
      		Email:    "jet@23.com",
      		Password: "123456",
      		Code:     4444,
      	}
      	err := v.Struct(input)
      	if err != nil {
      		for _, err := range err.(validator.ValidationErrors) {
      			fmt.Println(err)
      		}
      		return
      	}
      	fmt.Println("ok")
      }
      
      
      • 提示消息英文
      • 提示消息是固定的

      翻譯

      package main
      
      import (
      	"fmt"
      	"reflect"
      
      	"github.com/go-playground/locales/zh"
      	ut "github.com/go-playground/universal-translator"
      	"gopkg.in/go-playground/validator.v9"
      	zhTranslations "gopkg.in/go-playground/validator.v9/translations/zh"
      )
      
      // 安裝   go get gopkg.in/go-playground/validator.v9
      
      type InputLogin struct {
      	Email    string `json:"email" validate:"required,email" label:"郵箱"`
      	Password string `json:"password" validate:"required,max=16,min=6" label:"密碼"`
      	Code     int    `json:"code" validate:"gte=1000,lte=9999" label:"驗(yàn)證碼"`
      	C1       string `json:"c1" validate:"checkName" label:"測(cè)試字段"`
      }
      
      func checkName(fl validator.FieldLevel) bool {
      
      	val := fl.Field().String()
      
      	l1 := fl.GetTag()
      	fmt.Println(l1)
      	l2 := fl.Param()
      	fmt.Println(l2)
      
      	fmt.Println("----->", val)
      	//如果是張三就會(huì)觸發(fā)驗(yàn)證
      	return val != "張三"
      }
      
      func main() {
      
      	input := &InputLogin{
      		Email:    "jet@dsd.com",
      		Password: "12356",
      		Code:     444411,
      		C1:       "張三",
      	}
      
      	//中文翻譯器
      	zh_ch := zh.New()
      
      	uni := ut.New(zh_ch)
      	trans, _ := uni.GetTranslator("zh")
      
      	v := validator.New()
      	//注冊(cè)自定義驗(yàn)證函數(shù)
      	v.RegisterValidation("checkName", checkName)
      	//注冊(cè)翻譯器
      	zhTranslations.RegisterDefaultTranslations(v, trans)
      
      	// 自定義錯(cuò)誤信息
      	v.RegisterTranslation("checkName", trans, func(ut ut.Translator) error {
      		return ut.Add("checkName", "{0}字段名稱不能叫張三!", true)
      	}, func(ut ut.Translator, fe validator.FieldError) string {
      		t, _ := ut.T("checkName", fe.Field())
      		return t
      	})
      
      	v.RegisterTagNameFunc(func(field reflect.StructField) string {
      
      		fmt.Println("----->", field.Name)
      
      		//通過反射取出label
      		label := field.Tag.Get("label")
      
      		//fmt.Sprint
      		return fmt.Sprint(field.Name, ",", label)
      	})
      
      	err := v.Struct(input)
      	if err != nil {
      		for _, err := range err.(validator.ValidationErrors) {
      			//翻譯輸出
      			m := err.Translate(trans)
      			fmt.Println(m)
      		}
      
      		return
      	}
      	fmt.Println("ok")
      
      }
      
      

      打印結(jié)果為

      Password,密碼長(zhǎng)度必須至少為6個(gè)字符
      Code,驗(yàn)證碼必須小于或等于9,999
      C1,測(cè)試字段字段名稱不能叫張三!

      posted @ 2023-09-22 16:21  Jet-jing  閱讀(145)  評(píng)論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 激情亚洲内射一区二区三区 | 日韩精品亚洲专在线电影| 免费无码又爽又刺激网站直播| 熟妇人妻不卡中文字幕| 国产精成人品日日拍夜夜| 中文字幕精品av一区二区五区| 免费播放一区二区三区| 忘忧草社区在线www| 伊人成色综合人夜夜久久| 桦南县| 国产又爽又黄的激情视频| 国产高清在线男人的天堂| 爱性久久久久久久久| 国产另类ts人妖一区二区| 久久被窝亚洲精品爽爽爽| 性欧美三级在线观看| 国产成人综合久久久久久| 国产一区国产二区在线视频| 欧美性猛交xxxx乱大交丰满| 亚洲av永久无码精品漫画| 欧洲精品码一区二区三区| 久久综合干| 热久在线免费观看视频 | 免费无码va一区二区三区| 亚洲av永久无码一区二区三区| 久久中文字幕日韩无码视频| 国产精品国产精品国产专区不卡| 久久亚洲综合精品成人网| 精品视频在线观看免费观看| 强奷漂亮少妇高潮麻豆| 日韩少妇人妻vs中文字幕| 亚洲AV无码一二区三区在线播放| 四虎国产精品永久在线看| 国产一区日韩二区三区| 国产乱子影视频上线免费观看| 中文字幕日韩一区二区不卡| 日韩中文字幕高清有码| av日韩精品在线播放| 国产又色又爽又高潮免费| 亚洲第一综合天堂另类专| 亚洲国产精品一区二区久|