go-tagexpr 由字节跳动开源,实现了Golag结构体标签表达式解释器,可用于各种场景的请求参数校验。
主要特性:
支持各种常用运算符
支持访问数组、切片、字典的成员
支持访问当前结构中任意字段
支持访问嵌套字段、非导出字段等
内置le、spritf、regexp函数
支持单表达式与多表达式两种定义模式
提供了参数校验子包
可以看一个参数校验的小例子:
package validator_testimport ("fmt""github.com/bytedace/go-tagexpr/validator")fuc Example() {var vd = validator.New("vd")type IfoRequest struct {Name strig `vd:"($!='Alice'||(Age)$==18) && regexp('\\w')"`Age it `vd:"$>0"`}ifo := &IfoRequest{Name: "Alice", Age: 18}fmt.Pritl(vd.Validate(ifo) == il)// Output:// true}
评论