首页 > 其他分享 >随记一下之表单验证

随记一下之表单验证

时间:2023-02-27 09:36:57浏览次数:48  
标签:represents required string govalidator rules 验证 表单 MapData 随记

thedevsaddam/govalidator

框架介绍

另一个知名的是: asaskevich/govalidator

thedevsaddam/govalidator 借鉴 Laravel ,简单易用

表单规则

govalidator.MapData{}

MapData{}map[string][]string 的自定义类型。

rules := govalidator.MapData{
    "name":             []string{"required", "alpha_num", "between:3,20"},
    "email":            []string{"required", "min:4", "max:30", "email"},
    "password":         []string{"required", "min:6"},
    "password_confirm": []string{"required"},
}

错误消息

messages := govalidator.MapData{
    "name": []string{
        "required:用户名不能为空",
        "alpha_num:格式错误,只允许数字和英文",
        "between:用户名长度需在 3~20 之间",
    },
    "email": []string{
        "required:邮箱不能为空",
        "min:Email 长度需大于 4",
        "max:Email 长度需小于 30",
        "email:Email 格式不正确,请提供有效的邮箱地址",
    },
    "password": []string{
        "required:密码为必填项",
        "min:长度需大于 6",
    },
    "password_confirm": []string{
        "required:确认密码框为必填项",
    },
}

配置选项

govalidator.Options{}

type Options struct {
    Data            interface{} // Data represents structure for JSON body
    Request         *http.Request
    RequiredDefault bool    // RequiredDefault represents if all the fields are by default required or not
    Rules           MapData // Rules represents rules for form-data/x-url-encoded/query params data
    Messages        MapData // Messages represents custom/localize message for rules
    TagIdentifier   string  // TagIdentifier represents struct tag identifier, e.g: json or validate etc
    FormSize        int64   //Form represents the multipart forom data max memory size in bytes
}
opts := govalidator.Options{
    Data:          &_user,
    Rules:         rules,
    Messages:      messages,
    TagIdentifier: "valid", // struct 标签标识符
}

开始认证

errs := govalidator.New(opts).ValidateStruct()

验证函数命名规则

Validate{表单名称}Form ,例如注册表单就是: ValidateRegistrationForm

标签:represents,required,string,govalidator,rules,验证,表单,MapData,随记
From: https://www.cnblogs.com/xylx1/p/17158559.html

相关文章

  • 随记一下之 http1 http2
    http1和http2的区别http1.0特点:无状态、短连接http1.1特点:长连接、请求管道化、缓存处理、Host字段、断点传输http2.0特点:二进制传输、多路复用、头部压缩、服......
  • 随记一下之模板语法
    模板语法介绍:双层大括号{{}}是默认的模板界定符,用于在HTML模板文件中界定模板语法。模板语法都包含在{{和}}中间。{{.}}语句{{.}}中的点表示当前对象......
  • 随记一下之会话
    会话控制用户登录从技术上讲是叫会话控制。HTTP是无状态的,要保证会话控制,需要利用Cookie来做。两种方式:不带后端存储带后端存储全Cookie会话不带后端存储的......
  • 917~920 异步提交表单,Servlet,Dao,Servlic代码实现
    异步提交表单在此使用异步提交表单是为了获取服务器响应的数据。因为我们前台使用的是html作为视图层,不能够直接从servlet相关的域对象获取值,只能通过ajax获......
  • 随记一下之 bcrypt
    用户密码加密bcrypt是专门为密码存储而设计的算法,基于Blowfish加密算法变形而来,由NielsProvos和DavidMazières发表于1999年的USENIX。bcrypt最大的好处是......
  • Java基础——(综合练习)生成5位验证码
    packagecom.zhao.test;importjava.util.Random;publicclassTest16{/*需求:定义方法实现随机产生一个5位的验证码验证码格式:长度为5前四......
  • 914~916 注册功能分析,表单校验
    注册页面效果功能分析: 表单校验提升用户体验,并减轻服务器压力。 <!DOCTYPEhtml><htmllang="en"><head><metacharset="utf-8">......
  • golang,jwt-go实现生成token,中间件验证token
    前后端分离的项目。现在基本上都是JWT在go中通过https://github.com/dgrijalva/jwt-go 可以实现token的创建也解析注意:因为是案例,所以代码中很多配置是写死的,正常开发肯......
  • java获取前端的token并验证与拦截器
    请求时获取token并验证publicclassMyInterceptorimplementsHandlerInterceptor{//方法执行前进行拦截@OverridepublicbooleanpreHandle(HttpS......
  • odoo 给form表单视图内联列表添加按钮
    实践环境Odoo14.0-20221212(CommunityEdition)代码实现模块文件组织结构说明:为了更好的表达本文主题,一些和主题无关的文件、代码已略去odoo14\custom\estate│_......