Go 结构体标签表达式 go-tagexpr

Apache-2.0
Google Go 查看源码»
跨平台
2019-01-29
段段段落

go-tagexpr 由字节跳动开源,实现了 Golang 结构体标签表达式解释器,可用于各种场景的请求参数校验。

主要特性:

  • 支持各种常用运算符

  • 支持访问数组、切片、字典的成员

  • 支持访问当前结构中任意字段

  • 支持访问嵌套字段、非导出字段等

  • 内置 len、sprintf、regexp 函数

  • 支持单表达式与多表达式两种定义模式

  • 提供了参数校验子包

可以看一个参数校验的小例子:

package validator_test

import (
	"fmt"

	"github.com/bytedance/go-tagexpr/validator"
)

func Example() {
	var vd = validator.New("vd")

	type InfoRequest struct {
		Name string `vd:"($!='Alice'||(Age)$==18) && regexp('\\w')"`
		Age  int    `vd:"$>0"`
	}
	info := &InfoRequest{Name: "Alice", Age: 18}
	fmt.Println(vd.Validate(info) == nil)
	// Output:
	// true
}
的码云指数为
超过 的项目
加载中

评论(5)

小川先森
小川先森
感觉很鸡肋 使用场景在哪里呢
oreak
oreak
tag上做文章,是不是更麻烦了
l
lucklrj
最起码的验证规则要和结构体分开啊
小卡车呼呼呼
不敢用。等待稳定健壮
卧龙大熊猫
卧龙大熊猫
😁 挺实用的

Go 结构体标签表达式解释器 1.0 发布,参数校验杀手锏

go-tagexpr 由字节跳动开源,实现了 Golang 结构体标签表达式解释器,可用于各种场景的请求参数校验。 主要特性: 支持各种常用运算符 支持访问数组、切片、字典的成员 支持访问当前结构中任...

01/29 10:44

没有更多内容

加载失败,请刷新页面

没有更多内容

暂无问答

一个很好用的vimrc

在网上测试了好多vimrc,这个算是比较好用的一个了。

2014/01/13 08:58
204
1
vim配置vimrc详解

vimrc的存放位置: 系统 vimrc 文件: "$VIM/vimrc" 用户 vimrc 文件: "$HOME/.vimrc" 用户 exrc 文件: "$HOME/.exrc" 系统 gvimrc 文件: "$VIM/gvimrc" 用户 gvimrc 文件: "$HOME/.gvimrc" 系...

2015/12/29 14:56
34
0
IDE---vim---vim 设置备份

"F1~F12快捷键映射 ""{{{ map <F2> :BufExplorer<CR> nnoremap <silent> <F3> :Grep<CR> map <F4> :TlistToggle<CR> "map <F5> : LookupFile<CR> "插件中已映射 noremap <F6> :make<CR> nno...

2012/02/15 00:48
1K
0

没有更多内容

加载失败,请刷新页面

没有更多内容

返回顶部
顶部