|
7 | 7 |
|
8 | 8 | Go通用的数据验证与过滤库,使用简单,内置大部分常用验证器、过滤器,支持自定义消息、字段翻译。
|
9 | 9 |
|
10 |
| -- 支持验证Map,Struct,Request(Form,JSON,url.Values)数据 |
| 10 | +> **[EN README](README.md)** |
| 11 | +
|
| 12 | +- 支持验证Map,Struct,Request(Form,JSON,url.Values, UploadedFile)数据 |
11 | 13 | - 简单方便,支持前置验证检查, 支持添加自定义验证器
|
12 | 14 | - 支持将规则按场景进行分组设置。不同场景验证不同的字段
|
13 |
| -- 支持自定义每个验证的错误消息,字段翻译,消息翻译(内置`en` `zh-CN`) |
14 | 15 | - 支持在进行验证前对值使用过滤器进行净化过滤,查看 [内置过滤器](#built-in-filters)
|
15 |
| -- 方便的获取错误信息,验证后的安全数据获取(只会收集有规则检查过的数据) |
16 | 16 | - 已经内置了超多(> 60 个)常用的验证器,查看 [内置验证器](#built-in-validators)
|
| 17 | +- 方便的获取错误信息,验证后的安全数据获取(只会收集有规则检查过的数据) |
| 18 | +- 支持自定义每个验证的错误消息,字段翻译,消息翻译(内置`en` `zh-CN`) |
17 | 19 | - 完善的单元测试,覆盖率 > 85%
|
18 | 20 |
|
19 | 21 | > 受到这些项目的启发 [albrow/forms](https://github.com/albrow/forms) 和 [asaskevich/govalidator](https://github.com/asaskevich/govalidator). 非常感谢它们
|
@@ -270,58 +272,57 @@ v := d.Validation()
|
270 | 272 | `range/between` | 检查值是否为数字且在给定范围内
|
271 | 273 | `max/lte` | 检查输入值小于或等于给定值
|
272 | 274 | `min/gte` | 检查输入值大于或等于给定值(for `intX` `uintX` `floatX`)
|
273 |
| -`intStr/intString/isIntString` | Check value is an int string. |
274 | 275 | `eq/equal/isEqual` | 检查输入值是否等于给定值
|
275 | 276 | `ne/notEq/notEqual` | 检查输入值是否不等于给定值
|
276 |
| -`lt/lessThan` | Check value is less than the given size(use for `intX` `uintX` `floatX`) |
277 |
| -`gt/greaterThan` | Check value is greater than the given size(use for `intX` `uintX` `floatX`) |
278 |
| -`email/isEmail` | Check value is email address string. |
279 |
| -`intEq/intEqual` | Check value is int and equals to the given value. |
280 |
| -`len/length` | Check value length is equals to the given size(use for `string` `array` `slice` `map`). |
281 |
| -`regex/regexp` | Check if the value can pass the regular verification |
282 |
| -`arr/array/isArray` | Check value is array type |
283 |
| -`map/isMap` | Check value is a MAP type |
284 |
| -`strings/isStrings` | Check value is string slice type(only allow `[]string`). |
285 |
| -`ints/isInts` | Check value is int slice type(only allow `[]int`). |
286 |
| -`minLen/minLength` | Check the minimum length of the value is the given size |
287 |
| -`maxLen/maxLength` | Check the maximum length of the value is the given size |
288 |
| -`eqField` | Check that the field value is equals to the value of another field |
289 |
| -`neField` | Check that the field value is not equals to the value of another field |
290 |
| -`gteField` | Check that the field value is greater than or equal to the value of another field |
291 |
| -`gtField` | Check that the field value is greater than the value of another field |
292 |
| -`lteField` | Check if the field value is less than or equal to the value of another field |
293 |
| -`ltField` | Check that the field value is less than the value of another field |
| 277 | +`lt/lessThan` | 检查值小于给定大小(use for `intX` `uintX` `floatX`) |
| 278 | +`gt/greaterThan` | 检查值大于给定大小(use for `intX` `uintX` `floatX`) |
| 279 | +`intEq/intEqual` | 检查值为int且等于给定值 |
| 280 | +`len/length` | 检查值长度等于给定大小(use for `string` `array` `slice` `map`). |
| 281 | +`minLen/minLength` | 检查值的最小长度是给定大小 |
| 282 | +`maxLen/maxLength` | 检查值的最大长度是给定大小 |
| 283 | +`email/isEmail` | 检查值是Email地址字符串 |
| 284 | +`regex/regexp` | 检查该值是否可以通过正则验证 |
| 285 | +`arr/array/isArray` | 检查值是数组`array`类型 |
| 286 | +`map/isMap` | 检查值是MAP类型 |
| 287 | +`strings/isStrings` | 检查值是字符串切片类型(`[]string`). |
| 288 | +`ints/isInts` | 检查值是int slice类型(only allow `[]int`). |
| 289 | +`eqField` | 检查字段值是否等于另一个字段的值 |
| 290 | +`neField` | 检查字段值是否不等于另一个字段的值 |
| 291 | +`gtField` | 检查字段值是否大于另一个字段的值 |
| 292 | +`gteField` | 检查字段值是否大于或等于另一个字段的值 |
| 293 | +`ltField` | 检查字段值是否小于另一个字段的值 |
| 294 | +`lteField` | 检查字段值是否小于或等于另一个字段的值 |
294 | 295 | `file/isFile` | 验证是否是上传的文件
|
295 | 296 | `image/isImage` | 验证是否是上传的图片文件,支持后缀检查
|
296 | 297 | `mime/mimeType/inMimeTypes` | 验证是否是上传的文件,并且在指定的MIME类型中
|
297 |
| -`date/isDate` | Check the field value is date string. eg `2018-10-25` |
298 |
| -`gtDate/afterDate` | Check that the input value is greater than the given date string. |
299 |
| -`ltDate/beforeDate` | Check that the input value is less than the given date string |
300 |
| -`gteDate/afterOrEqualDate` | Check that the input value is greater than or equal to the given date string. |
301 |
| -`lteDate/beforeOrEqualDate` | Check that the input value is less than or equal to the given date string. |
302 |
| -`hasWhitespace` | Check value string has Whitespace. |
303 |
| -`ascii/ASCII/isASCII` | Check value is ASCII string. |
| 298 | +`date/isDate` | 检查字段值是否为日期字符串。(只支持几种常用的格式) eg `2018-10-25` |
| 299 | +`gtDate/afterDate` | 检查输入值是否大于给定的日期字符串 |
| 300 | +`ltDate/beforeDate` | 检查输入值是否小于给定的日期字符串 |
| 301 | +`gteDate/afterOrEqualDate` | 检查输入值是否大于或等于给定的日期字符串 |
| 302 | +`lteDate/beforeOrEqualDate` | 检查输入值是否小于或等于给定的日期字符串 |
| 303 | +`hasWhitespace` | 检查字符串值是否有空格 |
| 304 | +`ascii/ASCII/isASCII` | 检查值是ASCII字符串 |
304 | 305 | `alpha/isAlpha` | 验证值是否仅包含字母字符
|
305 | 306 | `alphaNum/isAlphaNum` | 验证是否仅包含字母、数字
|
306 | 307 | `alphaDash/isAlphaDash` | 验证是否仅包含字母、数字、破折号( - )以及下划线( _ )
|
307 | 308 | `multiByte/isMultiByte` | Check value is MultiByte string.
|
308 |
| -`base64/isBase64` | Check value is Base64 string. |
309 |
| -`dnsName/DNSName/isDNSName` | Check value is DNSName string. |
| 309 | +`base64/isBase64` | 检查值是Base64字符串 |
| 310 | +`dnsName/DNSName/isDNSName` | 检查值是DNS名称字符串 |
310 | 311 | `dataURI/isDataURI` | Check value is DataURI string.
|
311 | 312 | `empty/isEmpty` | Check value is Empty string.
|
312 |
| -`hexColor/isHexColor` | Check value is HexColor string. |
313 |
| -`hexadecimal/isHexadecimal` | Check value is Hexadecimal string. |
314 |
| -`json/JSON/isJSON` | Check value is JSON string. |
315 |
| -`lat/latitude/isLatitude` | Check value is Latitude string. |
316 |
| -`lon/longitude/isLongitude` | Check value is Longitude string. |
317 |
| -`mac/isMAC` | Check value is MAC string. |
318 |
| -`num/number/isNumber` | Check value is number string. `>= 0` |
| 313 | +`hexColor/isHexColor` | 检查值是16进制的颜色字符串 |
| 314 | +`hexadecimal/isHexadecimal` | 检查值是十六进制字符串 |
| 315 | +`json/JSON/isJSON` | 检查值是JSON字符串。 |
| 316 | +`lat/latitude/isLatitude` | 检查值是纬度坐标 |
| 317 | +`lon/longitude/isLongitude` | 检查值是经度坐标 |
| 318 | +`mac/isMAC` | 检查值是MAC字符串 |
| 319 | +`num/number/isNumber` | 检查值是数字字符串. `>= 0` |
319 | 320 | `printableASCII/isPrintableASCII` | Check value is PrintableASCII string.
|
320 |
| -`rgbColor/RGBColor/isRGBColor` | Check value is RGBColor string. |
321 |
| -`url/isURL` | Check value is URL string. |
322 |
| -`ip/isIP` | Check value is IP(v4 or v6) string. |
323 |
| -`ipv4/isIPv4` | Check value is IPv4 string. |
324 |
| -`ipv6/isIPv6` | Check value is IPv6 string. |
| 321 | +`rgbColor/RGBColor/isRGBColor` | 检查值是RGB颜色字符串 |
| 322 | +`url/isURL` | 检查值是URL字符串 |
| 323 | +`ip/isIP` | 检查值是IP(v4或v6)字符串 |
| 324 | +`ipv4/isIPv4` | 检查值是IPv4字符串 |
| 325 | +`ipv6/isIPv6` | 检查值是IPv6字符串 |
325 | 326 | `CIDR/isCIDR` | Check value is CIDR string.
|
326 | 327 | `CIDRv4/isCIDRv4` | Check value is CIDRv4 string.
|
327 | 328 | `CIDRv6/isCIDRv6` | Check value is CIDRv6 string.
|
|
0 commit comments