golang 的数据过滤包,由 数据输入、格式化、校验、输出 几个部份组成。
- 每个步骤都可以自定义错误消息
- 过滤结果可以自动赋值到变量
- 支持批量操作,合并错误处理代码
- 可将多条过滤规则封装成函数,便于复用
github.com/dxvgef/filter/v3
请参考单元测试代码获得使用帮助,其它问题请在 Issues 里提出。
FromString()
输入string
类型的数据
ToUpper
字母转为大写ToLower
字母转为小写Trim
删除左右的指定字符TrimSpace
删除左右的空格TrimLeft
删除左边的指定字符串TrimRight
删除右边的指定字符串TrimPrefix
删除指定的前缀字符串TrimSuffix
删除指定的后缀字符串Replace
替换指定的字符串,可指定替换次数ReplaceAll
替换指定的字符串,替换所有RemoveSpace
删除字符串中所有出现的空格Base64StdEncode
Base64 std 编码Base64StdDecode
Base64 std 解码Base64RawStdEncode
Base64 raw std 编码Base64RawStdDecode
Base64 raw std 解码Base64URLEncode
Base64 URL 编码Base64URLDecode
Base64 URL 解码Base64RawURLEncode
Base64 raw URL 编码Base64RawURLDecode
Base64 raw URL 解码HTMLEscape
编码成HTML中显示的字符HTMLUnescape
HTMLEscape的解码函数URLPathEscape
编码成能作为URL路径传输的字符URLPathUnescape
URLPathEscape的解码函数URLQueryEscape
编码成能作为URL查询参数传输的字符URLQueryUnescape
URLQueryEscape的解码函数
Require
参数不能为零值Length
字符串的长度必须为指定的值UTF8Length
按UTF8编码检查字符串的长度必须等于指定的值MinLength
字符串的长度不能小于指定的值UTF8MinLength
按UTF8编码检查字符串的长度不能小于指定的值MaxLength
字符串的长度不能大于指定的值UTF8MaxLength
按UTF8编码检查字符串的长度不能大于指定的值IsLower
必须是小写字母IsUpper
必须是大写字母IsLetter
必须是字母IsLowerOrNumber
必须是小写字母或数字IsUpperOrNumber
必须是大写字母或数字IsLetterOrNumber
必须是字母或数字IsChinese
必须是汉字IsMail
必须是电邮地址IsIP
必须是IPv4/v6地址IsTCPAddr
必须是IP or Host:Port格式IsMAC
必须是MAC地址IsJSON
必须是有效的JSON格式IsChineseIDcard
必须是中国大陆地区身份证号码IsSQLObject
必须是有效的SQL对象名(库、表、字段)IsUUID
必须是UUID格式IsULID
必须是ULID格式IsURL
必须是URL格式HasLetter
必须有字母HasLower
必须有小写字母HasUpper
必须有大写字母HasNumber
必须有数字HasSymbol
必须有符号HasPrefix
必须有指定的前缀字符串HasSuffix
必须有指定的后缀字符串Contains
必须包含指定的多个字符串AllowedChars
只允许存在指定的字符AllowedSymbols
只允许存在指定的符号(只校验符号)AllowedStrings
只允许存在指定的字符串(枚举)DeniedCharts
禁止存在指定的字符DeniedSymbols
禁止存在指定的符号(只校验符号)DeniedStrings
禁止存在指定的多个字符串
Custom
自定义字符串处理函数,详见CustomStringFunc
ToStringSlice
根据指定分隔符转为[]string
类型的对象ToInteger
转为int64
类型的对象ToIntegerSlice
根据指定分隔符转为[]int64
类型的对象ToBoolean
转为bool
类型的对象ToBooleanSlice
根据指定分隔符转为[]bool
类型的对象ToFloat
转为float
类型的对象ToFloatSlice
根据指定分隔符转为[]float
类型的对象
Error
返回过滤中出现的错误(error
类型)Value
返回当前值(string
类型)DefaultValue
如果过滤失败则返回默认值,否则返回过滤后的值Result
返回Value(), Error()
Set
通过反射将处理结果值赋值到字符串类型的变量
FromStringSlice
输入[]string
类型的数据
Trim
删除每个元素左右的指定字符TrimSpace
删除每个元素左右的空格TrimLeft
删除每个元素左边的指定字符串TrimRight
删除每个元素右边的指定字符串TrimPrefix
删除每个元素指定的前缀字符串TrimSuffix
删除每个元素指定的后缀字符串RemoveSpace
删除每个元素中所有出现的空格DeleteEmpty
删除空字符串的元素Base64StdEncode
对每个元素进行Base64 std 编码Base64StdDecode
对每个元素进行Base64 std 解码Base64RawStdEncode
对每个元素进行Base64 raw std 编码Base64RawStdDecode
对每个元素进行Base64 raw std 解码Base64URLEncode
对每个元素进行Base64 URL 编码Base64URLDecode
对每个元素进行Base64 URL 解码Base64RawURLEncode
对每个元素进行Base64 raw URL 编码Base64RawURLDecode
对每个元素进行Base64 raw URL 解码HTMLEscape
编码成HTML中显示的字符HTMLUnescape
HTMLEscape的解码函数URLPathEscape
编码成能作为URL路径传输的字符URLPathUnescape
URLPathEscape的解码函数URLQueryEscape
编码成能作为URL查询参数传输的字符URLQueryUnescape
URLQueryEscape的解码函数
Require
切片元的素数量不能为零,且不能所有元素都为零值MinCount
切片元素的数量不能小于指定值MaxCount
切片元素的数量不能大于指定值EqualCount
切片元素的数量必须是指定值NotEqualCount
切片元素的数量不能是指定值Length
每个字符串元素的长度必须等于指定值UTF8Length
按UTF8编码检查每个字符串元素的长度必须等于指定值MinLength
每个字符串元素的长度不能小于指定值UTF8MinLength
按UTF8编码检查每个字符串元素的长度不能小于的指定值MaxLength
每个字符串元素的长度不能大于的指定值UTF8MaxLength
按UTF8编码检查每个字符串元素的长度不能大于的指定值IsLower
每个元素都必须是小写字母IsUpper
每个元素都必须是大写字母IsLetter
每个元素都必须是字母IsLowerOrNumber
每个元素都必须是小写字母或数字IsUpperOrNumber
每个元素都必须是大写字母或数字IsLetterOrNumber
每个元素都必须是字母或数字IsChinese
每个元素都必须是汉字IsMail
每个元素都必须是电邮地址IsIP
每个元素都必须是IPv4/v6地址IsTCPAddr
每个元素都必须是IP or Host:Port格式IsMAC
每个元素都必须是MAC地址IsSQLObject
每个元素都必须是有效的SQL对象名(库、表、字段)IsUUID
每个元素都必须是UUID格式IsULID
每个元素都必须是ULID格式Contains
每个元素都必须包含指定的字符串HasPrefix
每个元素都必须有指定的前缀字符串HasSuffix
每个元素都必须有指定的后缀字符串HasLetter
每个元素都必须包含字母HasLower
每个元素都必须包含小写字母HasUpper
每个元素都必须包含大写字母HasNumber
每个元素都必须包含数字HasSymbol
每个元素都必须包含符号AllowedChars
每个元素都只允许存在指定的字符AllowedSymbols
每个元素都只允许存在指定的符号(只校验符号)AllowedStrings
每个元素都只允许存在指定的字符串(枚举)DeniedCharts
每个元素都禁止存在指定的字符DeniedSymbols
每个元素都禁止存在指定的符号(只校验符号)DeniedStrings
每个元素都禁止存在指定的多个字符串
Custom
自定义字符串处理函数,详见CustomStringSliceFunc
Error
返回过滤中出现的错误(error
类型)Value
返回当前值([]string
类型)DefaultValue
如果过滤失败则返回默认值,否则返回过滤后的值Result
返回Value(), Error()
Set
通过反射将处理结果值赋值到字符串切片类型的变量
FromInteger
输入int64
类型的数据
Replace
替换指定的值
Require
不能为零值MinValue
不能小于指定值MaxValue
不能大于指定值AllowedValues
只允许是指定的多个值DeniedValues
禁止是指定的多个值
Custom
自定义整数值处理函数,详见CustomIntegerFunc
Error
返回过滤中出现的错误(error
类型)Result
返回int64, error
Value
返回当前值(int64
类型)Set
通过反射将处理结果值赋值到整数或无符号整数类型的变量Int
返回uint
类型的数值DefaultInt
返回int
类型的数值,如果失败则返回指定的默认值Int8
返回int8
类型的数值DefaultInt8
返回int8
类型的数值,如果失败则返回指定的默认值Int16
返回int16
类型的数值DefaultInt16
返回int16
类型的数值,如果失败则返回指定的默认值Int32
返回int32
类型的数值DefaultInt32
返回int32
类型的数值,如果失败则返回指定的默认值Int64
返回int64
类型的数值DefaultInt64
返回int64
类型的数值,如果失败则返回指定的默认值Uint
返回uint
类型的数值DefaultUint
返回uint
类型的数值,如果失败则返回指定的默认值Uint8
返回uint8
类型的数值DefaultUint8
返回uint8
类型的数值,如果失败则返回指定的默认值Uint16
返回uint16
类型的数值DefaultUint16
返回uint16
类型的数值,如果失败则返回指定的默认值Uint32
返回uint32
类型的数值DefaultUint32
返回uint32
类型的数值,如果失败则返回指定的默认值Uint64
返回uint64
类型的数值DefaultUint64
返回uint64
类型的数值,如果失败则返回指定的默认值
FromIntegerSlice
输入[]int64
类型的数据
Require
切片元素的数量不能为零,且不能所有元素都为零值MinCount
切片元素的数量不能小于指定值MaxCount
切片元素的数量不能大于指定值EqualCount
切片元素的数量必须等于指定值NotEqualCount
切片元素的数量不能等于指定值MinValue
切片中不能存在值小于指定值的元素MaxValue
切片中不能存在值大于指定值的元素AllowedValues
只允许是指定的多个值DeniedValues
禁止是指定的多个值
Custom
自定义整数值处理函数,详见CustomIntegerSliceFunc
Error
返回过滤中出现的错误(error
类型)Result
返回int64, error
Value
返回当前值([]int64
类型)Set
通过反射将处理结果值赋值到整数切片或无符号整数切片类型的变量Int
返回uint
类型的数值DefaultInt
返回int
类型的数值,如果失败则返回指定的默认值Int8
返回int8
类型的数值DefaultInt8
返回int8
类型的数值,如果失败则返回指定的默认值Int16
返回int16
类型的数值DefaultInt16
返回int16
类型的数值,如果失败则返回指定的默认值Int32
返回int32
类型的数值DefaultInt32
返回int32
类型的数值,如果失败则返回指定的默认值Int64
返回int64
类型的数值DefaultInt64
返回int64
类型的数值,如果失败则返回指定的默认值Uint
返回uint
类型的数值DefaultUint
返回uint
类型的数值,如果失败则返回指定的默认值Uint8
返回uint8
类型的数值DefaultUint8
返回uint8
类型的数值,如果失败则返回指定的默认值Uint16
返回uint16
类型的数值DefaultUint16
返回uint16
类型的数值,如果失败则返回指定的默认值Uint32
返回uint32
类型的数值DefaultUint32
返回uint32
类型的数值,如果失败则返回指定的默认值Uint64
返回uint64
类型的数值DefaultUint64
返回uint64
类型的数值,如果失败则返回指定的默认值
FromFloat
输入float64
类型的数据
Require
不能为零值MinValue
不能小于指定值MaxValue
不能大于指定值AllowedValues
只允许是指定的值DeniedValues
禁止是指定的值
Custom
自定义整数值处理函数,详见CustomFloatFunc
Error
返回过滤中出现的错误(error
类型)Result
返回int64, error
Value
返回当前值(float64
类型)Set
通过反射将处理结果值赋值到浮点类型的变量Float32
返回float32
类型的数值DefaultFloat32
返回float32
类型的数值,如果失败则返回指定的默认值Float64
返回float64
类型的数值DefaultFloat64
返回float64
类型的数值,如果失败则返回指定的默认值
FromFloatSlice
输入[]float64
类型的数据
Require
切片元素的数量不能为零,且不能所有元素都为零值MinCount
切片元素的数量不能小于指定值MaxCount
切片元素的数量不能大于指定值EqualCount
切片元素的数量必须等于指定的值NotEqualCount
切片元素的数量不能等于指定的值MinValue
切片中不能存在小于指定值的元素MaxValue
切片中不能存在大于指定值的元素AllowedValues
只允许是指定的多个值DeniedValues
禁止是指定的多个值
Custom
自定义整数值处理函数,详见CustomFloatSliceFunc
Error
返回过滤中出现的错误(error
类型)Result
返回int64, error
Value
返回当前值([]float64
类型)Set
通过反射将处理结果值赋值到浮点切片类型的变量Float32
返回float32
类型的数值DefaultFloat32
返回float32
类型的数值,如果失败则返回指定的默认值Float64
返回float64
类型的数值DefaultFloat64
返回float64
类型的数值,如果失败则返回指定的默认值
FromBoolean
输入bool
类型的数据
Equal
必须等于指定值NotEqual
不能等于指定值
Custom
自定义整数值处理函数,详见CustomBooleanFunc
Error
返回过滤中出现的错误(error
类型)Result
返回int64, error
Value
返回当前值(bool
类型)DefaultValue
返回bool
类型的数值,如果失败则返回指定的默认值Set
通过反射将处理结果值赋值到布尔类型的变量
FromBooleanSlice
输入[]bool
类型的数据
Has
至少有一个元素必须包含指定值Count
元素的数量必须等于指定值MinCount
元素的数量不能小于指定值MaxCount
元素的数量不能大于指定值
Custom
自定义整数值处理函数,详见CustomBooleanSliceFunc
Error
返回过滤中出现的错误(error
类型)Result
返回[]bool, error
Value
返回当前值([]bool
类型)DefaultValue
返回[]bool
类型的数值,如果失败则返回指定的默认值Set
通过反射将处理结果值赋值到布尔切片类型的变量