1 回答
TA贡献1886条经验 获得超2个赞
看起来您正在尝试排除整个字符串,因此excludes验证会比excludesrune. Go 中的“符文”是一个 Unicode 代码点,您可能更习惯于仅调用“字符”,因此您的书面验证可能会导致任何包含字母的字符串失败o。
试试这个:
Name string `bson:"name" json:"name" binding:"required,excludes=organization,excludes=forbidden,ne=foo,ne=bar"`
编辑:如评论中所述,这不符合您禁止使用大写版本的被阻止字符串的要求。据我所知,您需要使用自定义验证器执行此操作:
func caseInsensitiveExcludes(fl validator.FieldLevel) bool {
lowerValue := strings.ToLower(fl.Field().String())
if strings.Contains(lowerValue, fl.Param()) {
return false
}
return true
}
validate.RegisterValidation("iexcludes", caseInsensitiveExcludes)
然后试试这个字段定义:
Name string `bson:"name" json:"name" binding:"required,iexcludes=organization,iexcludes=forbidden,ne=foo,ne=bar"`
- 1 回答
- 0 关注
- 96 浏览
添加回答
举报