golang validator v10 自定义验证方法和错误

这篇具有很好参考价值的文章主要介绍了golang validator v10 自定义验证方法和错误。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

自定义验证方法:

// NoChineseChars 不包含中文字符的校验器
func NoChineseChars(fl validator.FieldLevel) bool {
	// 获取字段值
	fieldValue := fl.Field().String()
	// 遍历字符串中的每个字符
	for _, char := range fieldValue {
		// 检查字符是否是中文字符
		if unicode.Is(unicode.Han, char) {
			return false
		}
	}
	return true
}

注册自定义方法和错误:

需要在初始化验证器时使用文章来源地址https://www.toymoban.com/news/detail-699271.html

chinese := zh.New()
uni := ut.New(chinese, chinese)
trans, _ := uni.GetTranslator("zh")
validate := validator.New()

// 注册方法
err := validate.RegisterValidation("noChinese", NoChineseChars)
if err != nil {
    return err
}
// 注册中文字符验证器自定义错误
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"`
}

到了这里,关于golang validator v10 自定义验证方法和错误的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • hibernate validator】(三)声明和验证方法约束

    https://blog.zysicyj.top/ RentalStation的name不能为空 rentCar(),customer不能为空,startDate不能为空且必须在未来,durationInDays最少为1天 该注解通过自动义确保乘客携带不超过2件行李 任何新创建的 RentalStation 对象必须满足 @ValidRentalStation 约束 传回的客户清单 getCustomers() 不得为 null 并且

    2024年02月11日
    浏览(37)
  • 银河麒麟服务器v10 sp1 .Net6.0 上传文件错误

    上一篇:银河麒麟服务器v10 sp1 部署.Net6.0 http https_csdn_aspnet的博客-CSDN博客 .NET 6之前,在Linux服务器上安装 libgdiplus 即可解决,libgdiplus是System.Drawing.Common原生端跨平台实现的主要提供者,是开源mono项目。地址:GitHub - mono/libgdiplus: C-based implementation of the GDI+ API 因此,解决方法

    2024年02月12日
    浏览(40)
  • Golang校验字符串是否JSON格式方法json.Valid源码解析

    上篇文章《Golang中如何校验字符串是否为JSON格式?》主要讲解了使用json.Valid校验字符串是否JSON格式的使用方法,本文来剖析一下json.Valid方法的源码。 json.Valid方法定义: scan := newScanner() 获取一个 scanner 类型的对象,关键的是checkValid方法,checkValid源码如下: 首先调用了sc

    2023年04月26日
    浏览(41)
  • Qt5开发环境-银河麒麟V10ARM平台

    前言 近期因参与开发的某个软件需要适配银河麒麟v10arm 平台,于是自己搭建起一套Qt 开发环境,在此记录下具体过程,以供有需要的朋友参考。一开始手上并没有Arm架构的PC,先在Windows下用Vs2017和QtCreator 开发,软件开发快结束的时候Arm PC到了。Qt 没有提供可直接安装的arm架

    2024年02月12日
    浏览(58)
  • 银河麒麟V10系统NetworkManager服务启动失败的解决方法

    目录 一、NetworkManger网络服务启动失败 二、故障定位过程 (一)重装NetworkManager未解决 (二)重装openssl未解决 三、解决方案 (一)修改/etc/ld.so.conf配置文件 (二)执行ldconfig命令 (三)什么是ld.so.conf文件?         这两天将kylin v10的系统重启了,重启后发现网络不通

    2024年01月19日
    浏览(247)
  • 一文学会sklearn中的交叉验证方法,cross_validate和KFlod实战案例

    在机器学习中,我们经常需要评估模型的性能。而为了准确评估模型的性能,我们需要使用一种有效的评估方法。五折交叉验证(5-fold cross-validation)就是其中一种常用的模型评估方法,用于评估机器学习模型的性能和泛化能力。 在本文中,我们将介绍五折交叉验证的原理和

    2024年02月13日
    浏览(50)
  • 银河麒麟服务器v10 sp1 .Net6.0 上传文件错误 access to the path is denied

    上一篇:银河麒麟服务器v10 sp1 部署.Net6.0 http https_csdn_aspnet的博客-CSDN博客 .NET 6之前,在Linux服务器上安装 libgdiplus 即可解决,libgdiplus是System.Drawing.Common原生端跨平台实现的主要提供者,是开源mono项目。地址:GitHub - mono/libgdiplus: C-based implementation of the GDI+ API 因此,解决方法

    2024年02月12日
    浏览(73)
  • 【Docker】Kylin V10 下 MySQL 容器内存占用异常的解决方法

    以下内容均来自个人笔记并重新梳理,如有错误欢迎指正!如果对您有帮助,烦请点赞、关注、转发!欢迎扫码关注个人公众号!  公众号原文链接:Kylin V10 下 MySQL 容器内存占用异常的解决方法 背景介绍 笔者在文章《MySQL 源码构建 Docker 镜像(基于 ARM 64 架构)》中曾提到

    2024年02月22日
    浏览(60)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包