• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-Nov-2020-

README.mdH A D03-Nov-20202.6 KiB148121

util.goH A D03-Nov-20206.6 KiB299230

util_test.goH A D03-Nov-20203.1 KiB129100

validation.goH A D03-Nov-202012.2 KiB457293

validation_test.goH A D03-Nov-202014.4 KiB610517

validators.goH A D03-Nov-202016 KiB740490

README.md

1validation
2==============
3
4validation is a form validation for a data validation and error collecting using Go.
5
6## Installation and tests
7
8Install:
9
10	go get github.com/astaxie/beego/validation
11
12Test:
13
14	go test github.com/astaxie/beego/validation
15
16## Example
17
18Direct Use:
19
20	import (
21		"github.com/astaxie/beego/validation"
22		"log"
23	)
24
25	type User struct {
26		Name string
27		Age int
28	}
29
30	func main() {
31		u := User{"man", 40}
32		valid := validation.Validation{}
33		valid.Required(u.Name, "name")
34		valid.MaxSize(u.Name, 15, "nameMax")
35		valid.Range(u.Age, 0, 140, "age")
36		if valid.HasErrors() {
37			// validation does not pass
38			// print invalid message
39			for _, err := range valid.Errors {
40				log.Println(err.Key, err.Message)
41			}
42		}
43		// or use like this
44		if v := valid.Max(u.Age, 140, "ageMax"); !v.Ok {
45			log.Println(v.Error.Key, v.Error.Message)
46		}
47	}
48
49Struct Tag Use:
50
51	import (
52		"github.com/astaxie/beego/validation"
53	)
54
55	// validation function follow with "valid" tag
56	// functions divide with ";"
57	// parameters in parentheses "()" and divide with ","
58	// Match function's pattern string must in "//"
59	type user struct {
60		Id   int
61		Name string `valid:"Required;Match(/^(test)?\\w*@;com$/)"`
62		Age  int    `valid:"Required;Range(1, 140)"`
63	}
64
65	func main() {
66		valid := validation.Validation{}
67		// ignore empty field valid
68		// see CanSkipFuncs
69		// valid := validation.Validation{RequiredFirst:true}
70		u := user{Name: "test", Age: 40}
71		b, err := valid.Valid(u)
72		if err != nil {
73			// handle error
74		}
75		if !b {
76			// validation does not pass
77			// blabla...
78		}
79	}
80
81Use custom function:
82
83	import (
84		"github.com/astaxie/beego/validation"
85	)
86
87	type user struct {
88		Id   int
89		Name string `valid:"Required;IsMe"`
90		Age  int    `valid:"Required;Range(1, 140)"`
91	}
92
93	func IsMe(v *validation.Validation, obj interface{}, key string) {
94		name, ok:= obj.(string)
95		if !ok {
96			// wrong use case?
97			return
98		}
99
100		if name != "me" {
101			// valid false
102			v.SetError("Name", "is not me!")
103		}
104	}
105
106	func main() {
107		valid := validation.Validation{}
108		if err := validation.AddCustomFunc("IsMe", IsMe); err != nil {
109			// hadle error
110		}
111		u := user{Name: "test", Age: 40}
112		b, err := valid.Valid(u)
113		if err != nil {
114			// handle error
115		}
116		if !b {
117			// validation does not pass
118			// blabla...
119		}
120	}
121
122Struct Tag Functions:
123
124	Required
125	Min(min int)
126	Max(max int)
127	Range(min, max int)
128	MinSize(min int)
129	MaxSize(max int)
130	Length(length int)
131	Alpha
132	Numeric
133	AlphaNumeric
134	Match(pattern string)
135	AlphaDash
136	Email
137	IP
138	Base64
139	Mobile
140	Tel
141	Phone
142	ZipCode
143
144
145## LICENSE
146
147BSD License http://creativecommons.org/licenses/BSD/
148