Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var AdvancedAttributes = map[Operator]Attribute{ ExprEval: {Title: "逻辑表达式", ValueNum: 1, DataType: "string"}, ExprGolang: {Title: "Go表达式", ValueNum: 1, DataType: "string"}, ExprCEL: {Title: "CEL表达式", ValueNum: 1, DataType: "string"}, ExprJSONLogic: {Title: "JSONLogic规则", ValueNum: 1, DataType: "string"}, }
View Source
var CategoryChineseNames = []CategoryAttribute{ {Category: CategoryDataType, Zh: "数据类型校验", List: DataTypeAttributes}, {Category: CategoryLength, Zh: "长度校验", List: LengthAttributes}, {Category: CategoryFormat, Zh: "格式校验", List: FormatAttributes}, {Category: CategoryContent, Zh: "内容校验", List: ContentAttributes}, }
View Source
var ContentAttributes = map[Operator]Attribute{ Required: {Title: "必填", ValueNum: 0, DataType: ""}, NotBlank: {Title: "非空白字符", ValueNum: 0, DataType: ""}, InEnum: {Title: "枚举值", ValueNum: -1, DataType: "array"}, NotInEnum: {Title: "不在枚举中", ValueNum: -1, DataType: "array"}, GreaterThan: {Title: "大于", ValueNum: 1, DataType: "number"}, GreaterEqual: {Title: "大于等于", ValueNum: 1, DataType: "number"}, LessThan: {Title: "小于", ValueNum: 1, DataType: "number"}, LessEqual: {Title: "小于等于", ValueNum: 1, DataType: "number"}, Equal: {Title: "等于", ValueNum: 1, DataType: "number"}, NotEqual: {Title: "不等于", ValueNum: 1, DataType: "number"}, RegexMatch: {Title: "正则匹配", ValueNum: 1, DataType: "string"}, }
View Source
var ContentChineseMap = map[Operator]string{ Required: "为必填项", NotBlank: "不能全是空白字符", InEnum: "值必须在预选范围内:%v", NotInEnum: "值不能在范围内:%v", GreaterThan: "值必须大于%v", GreaterEqual: "值必须大于等于%v", LessThan: "值必须小于%v", LessEqual: "值必须小于等于%v", Equal: "值必须等于%v", NotEqual: "值不能等于%v", RegexMatch: "格式不符合规则:%s", }
View Source
var DataTypeAttributes = map[Operator]Attribute{ TypeString: {Title: "文本", ValueNum: 0, DataType: ""}, TypeNumber: {Title: "数字", ValueNum: 0, DataType: ""}, TypeInteger: {Title: "整数", ValueNum: 0, DataType: ""}, TypeBoolean: {Title: "布尔值", ValueNum: 0, DataType: ""}, TypeTime: {Title: "时间", ValueNum: -1, DataType: "", Description: "可手动指定模板,模板语法[语言:模板],比如[php:Y-m-d H:i:s]"}, TypeArray: {Title: "数组", ValueNum: 0, DataType: ""}, TypeObject: {Title: "对象", ValueNum: 0, DataType: ""}, TypeNull: {Title: "空值", ValueNum: 0, DataType: ""}, }
View Source
var DataTypeChineseMap = map[Operator]string{ TypeString: "必须是文本类型", TypeNumber: "必须是数字", TypeInteger: "必须是整数", TypeBoolean: "必须是布尔值(true/false)", TypeTime: "必须是有效日期时间", TypeArray: "必须是数组", TypeObject: "必须是对象", TypeNull: "必须为空值", }
View Source
var FormatAttributes = map[Operator]Attribute{ FormatEmail: {Title: "邮箱地址", ValueNum: 0, DataType: ""}, FormatURL: {Title: "URL", ValueNum: 0, DataType: ""}, FormatIP: {Title: "IP地址", ValueNum: 0, DataType: ""}, FormatPhone: {Title: "手机号", ValueNum: 0, DataType: ""}, FormatIDCard: {Title: "身份证号", ValueNum: 0, DataType: ""}, FormatCreditCard: {Title: "信用卡号", ValueNum: 0, DataType: ""}, FormatHexColor: {Title: "十六进制颜色值", ValueNum: 0, DataType: ""}, FormatJSON: {Title: "JSON格式", ValueNum: 0, DataType: ""}, FormatXML: {Title: "XML格式", ValueNum: 0, DataType: ""}, FormatBase64: {Title: "Base64编码", ValueNum: 0, DataType: ""}, FormatUUID: {Title: "UUID", ValueNum: 0, DataType: ""}, }
View Source
var FormatChineseMap = map[Operator]string{ FormatEmail: "请输入有效的邮箱地址", FormatURL: "请输入有效的URL", FormatIP: "请输入有效的IP地址", FormatPhone: "请输入有效的手机号", FormatIDCard: "请输入有效的身份证号", FormatCreditCard: "请输入有效的信用卡号", FormatHexColor: "请输入有效的十六进制颜色值(如#FFFFFF)", FormatJSON: "必须是有效的JSON格式", FormatXML: "必须是有效的XML格式", FormatBase64: "必须是有效的Base64编码", FormatUUID: "必须是有效的UUID", }
Functions ¶
This section is empty.
Types ¶
type CategoryAttribute ¶
type CategoryAttribute struct {
Category ValidationCategory `json:"category"`
Zh string `json:"zh"`
List map[Operator]Attribute `json:"list"`
}
type Operator ¶
type Operator string //条件运算类型
const ( TypeString Operator = "is_string" // 字符串类型 TypeNumber Operator = "is_number" // 数字类型(含整型/浮点) TypeInteger Operator = "is_integer" // 整型 TypeBoolean Operator = "is_boolean" // 布尔类型 TypeTime Operator = "is_time" // 时间类型 TypeArray Operator = "is_array" // 数组类型 TypeObject Operator = "is_object" // 对象类型 TypeNull Operator = "is_null" // 空值 )
const ( FormatEmail Operator = "email" FormatURL Operator = "url" FormatIP Operator = "ip" FormatPhone Operator = "phone" FormatIDCard Operator = "id_card" // 身份证 FormatCreditCard Operator = "credit_card" // 信用卡 FormatHexColor Operator = "hex_color" // 十六进制颜色 FormatJSON Operator = "json" // JSON格式 FormatXML Operator = "xml" // XML格式 FormatBase64 Operator = "base64" FormatUUID Operator = "uuid" )
const ( Required Operator = "required" // 必填 NotBlank Operator = "not_blank" // 非空白字符 InEnum Operator = "in_enum" // 枚举值 NotInEnum Operator = "not_in_enum" // 不在枚举中 GreaterThan Operator = "gt" // 大于 GreaterEqual Operator = "ge" // 大于等于 LessThan Operator = "lt" // 小于 LessEqual Operator = "le" // 小于等于 Equal Operator = "eq" // 等于 NotEqual Operator = "ne" // 不等于 RegexMatch Operator = "regex" // 正则匹配 )
type ValidationCategory ¶
type ValidationCategory string // 条件运算分类
const ( CategoryDataType ValidationCategory = "data_type" // 数据类型校验(原基础格式的子类) CategoryLength ValidationCategory = "length" // 长度校验(原基础格式的子类) CategoryFormat ValidationCategory = "format" // 格式校验(原基础格式的子类) CategoryContent ValidationCategory = "content" // 内容校验 CategoryAdvanced ValidationCategory = "advanced" // 高级校验 )
type ValidationError ¶
type ValidationError struct {
Field string `json:"field"` // 验证失败的字段名
RealField string `json:"real_field"` // 实际验证的字段名
InputValue interface{} `json:"input_value"` // 输入的原始值
RuleValue interface{} `json:"rule_value"` // 规则要求的比较值
Operator Operator `json:"operator"` // 使用的操作符
Category ValidationCategory `json:"category"` // 验证类型分类
Message string `json:"message"` // 错误描述信息
}
ValidationError 定义验证错误详情
Click to show internal directories.
Click to hide internal directories.