Skip to content

Checkers

go
type CheckFunc func(ctx CheckerContext) *ErrContext

var Checkers map[string]CheckFunc

Checkers map 是校验器函数的注册表,按规则名作 key。内置条目:

go
var Checkers = map[string]CheckFunc{
    "required":     required,
    "min":          min,
    "max":          max,
    "minlen":       minlen,
    "maxlen":       maxlen,
    "alpha":        alpha,
    "alphanumeric": alphaNumeric,
    "alphadash":    alphaDash,
    "username":     userName,
    "email":        email,
    "ipv4":         ipv4,
    "mobile":       mobile,
    "tel":          tel,
    "phone":        phone,
    "idcard":       idCard,
    "equal":        equal,
    "list":         list,
}

每条规则的具体语义见 内置校验器

添加校验器

go
govalid.Checkers["myRule"] = func(c govalid.CheckerContext) *govalid.ErrContext {
    // ...
    return nil
}

替换校验器

语法相同——给已存在的 key 赋值即可覆盖内置:

go
govalid.Checkers["required"] = func(c govalid.CheckerContext) *govalid.ErrContext {
    // 覆盖内置语义
    return nil
}

删除校验器

go
delete(govalid.Checkers, "idcard")

被删除规则在结构体标签里的引用,运行时会触发 MakeCheckerNotFoundError

并发

map 本身支持并发写。请在程序启动时改动一次,请求开始流入 后就别再动了。多 goroutine 读取在没有写者时是安全的——这就是 Go map 的标准契约。

基于 MIT 协议发布。