# GoFunction **Repository Path**: MrMarko/go-function ## Basic Information - **Project Name**: GoFunction - **Description**: 用于Go的一些方法,如:数据验证,文件上传等常用方法 持续更新....... - **Primary Language**: Go - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2021-12-14 - **Last Updated**: 2021-12-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## Go常用函数集合 - 测试案例可查看test.go 1. 数据验证 ``` 用法 // 接收结构体加上form和validate设置字段名和验证规则 type a struct { Name string `form:"name" validate:"is_number|is_phone|is_mail|length:50|in:1,2,3"` } func main(){ var b a var setErr validate.ErrData // 模拟表单值 b.Name = "1" // 分开设置 setErr.DefaultErr = "hellowolrd" setErr.FieldErr = map[string]map[string]interface{}{ "name": { validate.EmptyErr: "内容为空", validate.NumberErr: "内容不是数字", validate.PhoneErr: "内容不是手机号", validate.MailErr: 1234, }, } setErr.RuleErr = map[string]interface{}{ validate.ArrayLengthErr: 1234, validate.PhoneErr: 4444, validate.MailErr: 5674, validate.NumberErr: 1111, } // 批量设置 setErr = validate.ErrData{ DefaultErr: "hellowolrd", FieldErr: validate.FieldErr{ "name": { validate.EmptyErr: "内容为空", validate.NumberErr: "内容不是数字", validate.PhoneErr: "内容不是手机号", validate.MailErr: 1234, }, }, } // 连贯操作 var err = new(validate.IFace).SetError(setErr).Validate(&b) fmt.Println(err) } 验证方法 empty = 判断是否为空 is_phone = 判断是否为手机号码 is_mail = 判断是否为邮箱 is_url = 判断是否为网址 is_number = 判断是否为数字 length = 判断字符串长度 in = 判断是否在指定范围内 array_length = 判断数组是否超过数量限制 (目前支持 []int []string) ```