Documentation
¶
Overview ¶
Package validation 数据验证相关功能
Index ¶
- type ErrorHandling
- type FieldsValidator
- type IfExpr
- type Messages
- type Rule
- type ValidateFunc
- func In(element ...interface{}) ValidateFunc
- func Length(min, max int64) ValidateFunc
- func Match(exp *regexp.Regexp) ValidateFunc
- func Max(max float64) ValidateFunc
- func MaxLength(max int64) ValidateFunc
- func Min(min float64) ValidateFunc
- func MinLength(min int64) ValidateFunc
- func NotIn(element ...interface{}) ValidateFunc
- func Range(min, max float64) ValidateFunc
- func Required(skipNil bool) ValidateFunc
- type Validation
- type Validator
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ErrorHandling ¶
type ErrorHandling int8
ErrorHandling 当验证出错时的处理方式
const ( ContinueAtError ErrorHandling = iota // 碰到错误不中断验证 ExitAtError // 碰到错误中断验证 ExitFieldAtError // 碰到错误中断当前字段的验证 )
当验证出错时的几种可用处理方式
type FieldsValidator ¶
type FieldsValidator interface {
ValidateFields(ErrorHandling, *message.Printer) Messages
}
FieldsValidator 验证子项接口
一般用在自定义类型上,用于验证自身的子项数据。
凡实现此接口的对象,在 NewField 中会自动调用此接口的方法进行额外验证。
type IfExpr ¶
type IfExpr struct {
// contains filtered or unexported fields
}
IfExpr 根据 if 条件选择不同的验证规则
type ValidateFunc ¶
type ValidateFunc func(interface{}) bool
ValidateFunc 用于验证指定数据的合法性
func In ¶
func In(element ...interface{}) ValidateFunc
In 声明枚举类型的验证规则
要求验证的值必须包含在 element 元素中,如果不存在,则返回 msg 的内容。
func Length ¶
func Length(min, max int64) ValidateFunc
Length 声明判断内容长度的验证规则
如果 min 和 max 有值为 -1,表示忽略该值的比较,都为 -1 表示不限制长度。
只能验证类型为 string、Map、Slice 和 Array 的数据。
func Range ¶
func Range(min, max float64) ValidateFunc
Range 声明判断数值大小的验证规则
只能验证类型为 int、int8、int16、int32、int64、uint、uint8、uint16、uint32、uint64、float32 和 float64 类型的值。
min 和 max 可以分别采用 math.Inf(-1) 和 math.Inf(1) 表示其最大的值范围。
func Required ¶
func Required(skipNil bool) ValidateFunc
Required 判断值是否必须为非空的规则
skipNil 表示当前值为指针时,如果指向 nil,是否跳过非空检测规则。 如果 skipNil 为 false,则 nil 被当作空值处理。
具体判断规则可参考 github.com/issue9/is.Empty
func (ValidateFunc) IsValid ¶
func (f ValidateFunc) IsValid(v interface{}) bool
IsValid 将当前函数作为 Validator 使用
type Validation ¶
type Validation struct {
// contains filtered or unexported fields
}
Validation 验证器
func (*Validation) NewField ¶
func (v *Validation) NewField(val interface{}, name string, rules ...*Rule) *Validation
NewField 验证新的字段