mirror of
https://gitee.com/rainbond/Rainbond.git
synced 2024-12-02 11:47:36 +08:00
77 lines
4.6 KiB
Markdown
77 lines
4.6 KiB
Markdown
### 用法实例
|
|
```
|
|
type User struct {
|
|
Username string `validate:"username|required|between:3,8"`
|
|
Email string `validate:"email|email"`
|
|
Web string `validate:"web|url"`
|
|
Age int `validate:"age|numeric_between:18,55"`
|
|
}
|
|
|
|
func handler(w http.ResponseWriter, r *http.Request) {
|
|
var user User
|
|
messages := validator.MapData{
|
|
"username": []string{"required:You must provide username", "between:username must be between 3 to 8 chars"},
|
|
"web": []string{"url:You must provide a valid url"},
|
|
}
|
|
|
|
if !httputil.ValidatorRequestStructAndErrorResponse(r, w, &user, messages) {
|
|
return
|
|
}
|
|
httputil.ReturnSuccess(r, w, user)
|
|
}
|
|
func handlerMap(w http.ResponseWriter, r *http.Request) {
|
|
rule := validator.MapData{
|
|
"username": []string{"required", "between:3,5"},
|
|
"web": []string{"url"},
|
|
}
|
|
messages := validator.MapData{
|
|
"username": []string{"required:You must provide username", "between:username must be between 3 to 8 chars"},
|
|
"web": []string{"url:You must provide a valid url"},
|
|
}
|
|
data, ok := httputil.ValidatorRequestMapAndErrorResponse(r, w, rule, messages)
|
|
if !ok {
|
|
return
|
|
}
|
|
httputil.ReturnSuccess(r, w, data)
|
|
}
|
|
```
|
|
### Validation Rules
|
|
* `alpha` The field under validation must be entirely alphabetic characters.
|
|
* `alpha_dash` The field under validation may have alpha-numeric characters, as well as dashes and underscores.
|
|
* `alpha_num` The field under validation must be entirely alpha-numeric characters.
|
|
* `numeric` The field under validation must be entirely numeric characters.
|
|
* `numeric_between:int,int` The field under validation must be a numeric value between the range.
|
|
e.g: `numeric_between:18,65` may contains numeric value like `35`, `55`
|
|
* `bool` The field under validation must be able to be cast as a boolean. Accepted input are `true, false, 1, 0, "1" and "0"`.
|
|
* `credit_card` The field under validation must have a valid credit card number. Accepted cards are `Visa, MasterCard, American Express, Diners Club, Discover and JCB card`
|
|
* `coordinate` The field under validation must have a value of valid coordinate.
|
|
* `css_color` The field under validation must have a value of valid CSS color. Accepted colors are `hex, rgb, rgba, hsl, hsla` like `#909, #00aaff, rgb(255,122,122)`
|
|
* `date` The field under validation must have a valid date of format yyyy-mm-dd or yyyy/mm/dd.
|
|
* `date:dd-mm-yyyy` The field under validation must have a valid date of format dd-mm-yyyy.
|
|
* `digits:int` The field under validation must be numeric and must have an exact length of value.
|
|
* `digits_between:int,int` The field under validation must be numeric and must have length between the range.
|
|
e.g: `digits_between:3,5` may contains digits like `2323`, `12435`
|
|
* `email` The field under validation must have a valid email.
|
|
* `float` The field under validation must have a valid float number.
|
|
* `in:foo,bar` The field under validation must have one of the values. e.g: `in:admin,manager,user` must contain the values (admin or manager or user)
|
|
* `min:int` The field under validation must have a min length of characters.
|
|
e.g: `min:3` may contains characters minimum length of 3 like `"john", "jane", "jane321"` but not `"mr", "xy"`
|
|
* `max:int` The field under validation must have a max length of characters.
|
|
e.g: `max:6` may contains characters maximum length of 6 like `"john doe", "jane doe"` but not `"john", "jane"`
|
|
* `not_in:foo,bar` The field under validation must have one value except foo,bar. e.g: `not_in:admin,manager,user` must not contain the values (admin or manager or user)
|
|
* `len:int` The field under validation must have an exact length of characters.
|
|
e.g: `len:4` may contains characters exact length of 4 like `Food, Mood, Good`
|
|
* `ip` The field under validation must be a valid IP address.
|
|
* `ip_v4` The field under validation must be a valid IP V4 address.
|
|
* `ip_v6` The field under validation must be a valid IP V6 address.
|
|
* `json` The field under validation must be a valid JSON string.
|
|
* `lat` The field under validation must be a valid latitude.
|
|
* `lon` The field under validation must be a valid longitude.
|
|
* `regex:regurlar expression` The field under validation validate against the regex. e.g: `regex:^[a-zA-Z]+$` validate the letters.
|
|
* `required` The field under validation must be present in the input data and not empty. A field is considered "empty" if one of the following conditions are true: 1) The value is null. 2)The value is an empty string.
|
|
* `url` The field under validation must be a valid URL.
|
|
* `uuid` The field under validation must be a valid UUID.
|
|
* `uuid_v3` The field under validation must be a valid UUID V3.
|
|
* `uuid_v4` The field under validation must be a valid UUID V4.
|
|
* `uuid_v5` The field under validation must be a valid UUID V5.
|