validation

package
v0.55.3 Latest Latest
Warning

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

Go to latest
Published: Aug 17, 2022 License: MIT Imports: 4 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(message localeutil.LocaleStringer, validator Validator) *Rule

func NewRuleFunc added in v0.55.2

func NewRuleFunc(message localeutil.LocaleStringer, f func(any) bool) *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 AndFunc added in v0.55.3

func AndFunc(f ...func(any) bool) Validator

func Or

func Or(v ...Validator) Validator

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

func OrFunc added in v0.55.3

func OrFunc(f ...func(any) bool) Validator

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL