validation

package
v0.55.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 7, 2022 License: MIT Imports: 5 Imported by: 0

Documentation

Overview

Package validation 验证功能

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Rule

type Rule struct {
	// contains filtered or unexported fields
}

func NewRule

func NewRule(validator Validator, key message.Reference, v ...any) *Rule

type ValidateFunc

type ValidateFunc func(any) bool

ValidateFunc 用于验证指定数据的合法性

func (ValidateFunc) IsValid

func (f ValidateFunc) IsValid(v any) bool

type Validation

type Validation struct {
	// contains filtered or unexported fields
}

Validation 验证工具

func New

func New(exitAtError bool) *Validation

New 声明验证对象

exitAtError 表示是在验证出错时,是否还继续其它字段的验证。

func (*Validation) Add

func (v *Validation) Add(name string, reason localeutil.LocaleStringer)

Add 直接添加一条错误信息

此方法不受 exitAtError 标记位的影响。

func (*Validation) AddField

func (v *Validation) AddField(val any, name string, rules ...*Rule) *Validation

AddField 验证新的字段

val 表示需要被验证的值; name 表示当前字段的名称,当验证出错时,以此值作为名称返回给用户; rules 表示验证的规则,按顺序依次验证。

func (*Validation) AddMapField

func (v *Validation) AddMapField(val any, name string, rules ...*Rule) *Validation

AddMapField 验证 map 字段

如果字段类型不是 map,将添加一条错误信息,并退出验证。

func (*Validation) AddSliceField

func (v *Validation) AddSliceField(val any, name string, rules ...*Rule) *Validation

AddSliceField 验证数组字段

如果字段类型不是数组或是字符串,将添加一条错误信息,并退出验证。

func (*Validation) Count

func (v *Validation) Count() int

func (*Validation) Destroy

func (v *Validation) Destroy()

Destroy 回收当前对象

这不是一个必须调用的方法,但是该方法在大量频繁地的使用 Validation 时有一定的性能提升。

func (*Validation) Visit

func (v *Validation) Visit(f func(string, localeutil.LocaleStringer) bool)

Visit 依次访问每一条错误信息

f 为访问错误信息的方法,其原型为:

func(key string, reason localeutil.LocaleStringer) (ok bool)

其中的 key 为名称,reason 为出错原因,返回值 ok 表示是否继续下一条信息的访问。

func (*Validation) When

func (v *Validation) When(cond bool, f func(v *Validation)) *Validation

When 只有满足 cond 才执行 f 中的验证

f 中的 v 即为当前对象;

type Validator

type Validator interface {
	// IsValid 验证 v 是否符合当前的规则
	IsValid(v any) bool
}

Validator 用于验证指定数据的合法性

func And

func And(v ...Validator) Validator

And 将多个验证函数以与的形式合并为一个验证函数

func Or

func Or(v ...Validator) Validator

Or 将多个验证函数以或的形式合并为一个验证函数

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL
JackTT - Gopher 🇻🇳