Validator 验证

Golang

Validator 资料验证

如果我们有需要做资料或者数据相关的检验,我们可以考虑使用validator,跟先前一样,需要先在终端机使用go get取得该套件,然後在import引用该套件。

直接上个范例程序码来瞧瞧

package main

import (
	"fmt"
	"github.com/go-playground/validator"
)

type User struct {
	Username string `validate:"min=4,max=10"`
	Age      uint8  `validate:"gte=1,lte=10"`
	Sex      string `validate:"oneof=female male"`
}

func main() {
	validate := validator.New()

	user1 := User{Username: "tom", Age: 11, Sex: "null"}
	err := validate.Struct(user1)
	if err != nil {
		fmt.Println(err)
	}

	user2 := User{Username: "Annabelle", Age: 8, Sex: "male"}
	err = validate.Struct(user2)
	if err != nil {
		fmt.Println(err)
	}

}

执行起来会得到

Key: 'User.Username' Error:Field validation for 'Username' failed on the 'min' tag
Key: 'User.Age' Error:Field validation for 'Age' failed on the 'lte' tag
Key: 'User.Sex' Error:Field validation for 'Sex' failed on the 'oneof' tag

从字面上来理解看看发生了什麽事情
User.Username 不符合min的规范
User.Age 不符合lte的规范
User.Sex 不符合oneof的规范

那我们可以设定那些规则呢?

  • len 等於(长度)
  • max 最大长度
  • min 最小长度
  • eq 等於(值)
  • ne 不等於该值
  • gt 大於该值
  • gte 大於等於该值
  • lt 小於该值
  • lte 小於等於该值
  • onof 必须是其中之一

所以回来看刚刚的code

	Username string `validate:"min=4,max=10"`
	Age      uint8  `validate:"gte=1,lte=10"`
	Sex      string `validate:"oneof=female male"`

Username 最小是4 最大是10
Age 必须大於等於1,小於等於10
Sex 必须是male和female其中一个


<<:  网页命名规则-30天学会HTML+CSS,制作精美网站

>>:  Day10:【TypeScript 学起来】只有 TS 才有的型别 : any / unknow / void / never

入门魔法 - 了解 JSON 格式及内建方法

前情提要 前几天帮艾草整理了爱情灵药秘方。 「咦,爱情灵药的秘方也太简单了吧,我还以为会很特别呢?」...

Day-23 AVL Tree

树的高度(height of the tree) 在Binary Search tree中,我们知道...

【Day07】事件处理 Handling Events

React 事件处理 React 和 HTML 事件处理的语法略有不同: HTML 的事件语法: &...

[Day17] swift & kotlin 实作篇!(8) Animation - swift

swift 画面有了~功能也有了~ 接下来我们做个小动画 我们试着让小鸡在画面中跳起来 整个APP ...

裸机Hyperviser之间比较

但市面上的裸机Hyperviser还有其他选择(ESXI, Proxmox VE…),为何独锺unR...