自定義驗(yàn)證方法:
// NoChineseChars 不包含中文字符的校驗(yàn)器
func NoChineseChars(fl validator.FieldLevel) bool {
// 獲取字段值
fieldValue := fl.Field().String()
// 遍歷字符串中的每個(gè)字符
for _, char := range fieldValue {
// 檢查字符是否是中文字符
if unicode.Is(unicode.Han, char) {
return false
}
}
return true
}
注冊(cè)自定義方法和錯(cuò)誤:
需要在初始化驗(yàn)證器時(shí)使用文章來源地址http://www.zghlxwxcb.cn/news/detail-699271.html
chinese := zh.New()
uni := ut.New(chinese, chinese)
trans, _ := uni.GetTranslator("zh")
validate := validator.New()
// 注冊(cè)方法
err := validate.RegisterValidation("noChinese", NoChineseChars)
if err != nil {
return err
}
// 注冊(cè)中文字符驗(yàn)證器自定義錯(cuò)誤
err = validate.RegisterTranslation("noChinese", trans, func(ut ut.Translator) error {
return ut.Add("noChinese", "{0} 不能包含中文字符", true)
}, func(ut ut.Translator, fe validator.FieldError) string {
t, _ := ut.T("noChinese", fe.Field())
return t
})
if err != nil {
return err
}
如何使用
type Test struct{
UUID string `validate:"required,max=100,noChinese" json:"uuid"`
}
文章來源:http://www.zghlxwxcb.cn/news/detail-699271.html
到了這里,關(guān)于golang validator v10 自定義驗(yàn)證方法和錯(cuò)誤的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!