@@ -3,45 +3,59 @@ package validator
33import "regexp"
44
55const (
6- alphaRegexString = "^[a-zA-Z]+$"
7- alphaNumericRegexString = "^[a-zA-Z0-9]+$"
8- numericRegexString = "^[-+]?[0-9]+(?:\\ .[0-9]+)?$"
9- numberRegexString = "^[0-9]+$"
10- hexadecimalRegexString = "^[0-9a-fA-F]+$"
11- hexcolorRegexString = "^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$"
12- rgbRegexString = "^rgb\\ (\\ s*(?:(?:0|[1-9]\\ d?|1\\ d\\ d?|2[0-4]\\ d|25[0-5])\\ s*,\\ s*(?:0|[1-9]\\ d?|1\\ d\\ d?|2[0-4]\\ d|25[0-5])\\ s*,\\ s*(?:0|[1-9]\\ d?|1\\ d\\ d?|2[0-4]\\ d|25[0-5])|(?:0|[1-9]\\ d?|1\\ d\\ d?|2[0-4]\\ d|25[0-5])%\\ s*,\\ s*(?:0|[1-9]\\ d?|1\\ d\\ d?|2[0-4]\\ d|25[0-5])%\\ s*,\\ s*(?:0|[1-9]\\ d?|1\\ d\\ d?|2[0-4]\\ d|25[0-5])%)\\ s*\\ )$"
13- rgbaRegexString = "^rgba\\ (\\ s*(?:(?:0|[1-9]\\ d?|1\\ d\\ d?|2[0-4]\\ d|25[0-5])\\ s*,\\ s*(?:0|[1-9]\\ d?|1\\ d\\ d?|2[0-4]\\ d|25[0-5])\\ s*,\\ s*(?:0|[1-9]\\ d?|1\\ d\\ d?|2[0-4]\\ d|25[0-5])|(?:0|[1-9]\\ d?|1\\ d\\ d?|2[0-4]\\ d|25[0-5])%\\ s*,\\ s*(?:0|[1-9]\\ d?|1\\ d\\ d?|2[0-4]\\ d|25[0-5])%\\ s*,\\ s*(?:0|[1-9]\\ d?|1\\ d\\ d?|2[0-4]\\ d|25[0-5])%)\\ s*,\\ s*(?:(?:0.[1-9]*)|[01])\\ s*\\ )$"
14- hslRegexString = "^hsl\\ (\\ s*(?:0|[1-9]\\ d?|[12]\\ d\\ d|3[0-5]\\ d|360)\\ s*,\\ s*(?:(?:0|[1-9]\\ d?|100)%)\\ s*,\\ s*(?:(?:0|[1-9]\\ d?|100)%)\\ s*\\ )$"
15- hslaRegexString = "^hsla\\ (\\ s*(?:0|[1-9]\\ d?|[12]\\ d\\ d|3[0-5]\\ d|360)\\ s*,\\ s*(?:(?:0|[1-9]\\ d?|100)%)\\ s*,\\ s*(?:(?:0|[1-9]\\ d?|100)%)\\ s*,\\ s*(?:(?:0.[1-9]*)|[01])\\ s*\\ )$"
16- emailRegexString = "^(?:(?:(?:(?:[a-zA-Z]|\\ d|[!#\\ $%&'\\ *\\ +\\ -\\ /=\\ ?\\ ^_`{\\ |}~]|[\\ x{00A0}-\\ x{D7FF}\\ x{F900}-\\ x{FDCF}\\ x{FDF0}-\\ x{FFEF}])+(?:\\ .([a-zA-Z]|\\ d|[!#\\ $%&'\\ *\\ +\\ -\\ /=\\ ?\\ ^_`{\\ |}~]|[\\ x{00A0}-\\ x{D7FF}\\ x{F900}-\\ x{FDCF}\\ x{FDF0}-\\ x{FFEF}])+)*)|(?:(?:\\ x22)(?:(?:(?:(?:\\ x20|\\ x09)*(?:\\ x0d\\ x0a))?(?:\\ x20|\\ x09)+)?(?:(?:[\\ x01-\\ x08\\ x0b\\ x0c\\ x0e-\\ x1f\\ x7f]|\\ x21|[\\ x23-\\ x5b]|[\\ x5d-\\ x7e]|[\\ x{00A0}-\\ x{D7FF}\\ x{F900}-\\ x{FDCF}\\ x{FDF0}-\\ x{FFEF}])|(?:\\ (?:[\\ x01-\\ x09\\ x0b\\ x0c\\ x0d-\\ x7f]|[\\ x{00A0}-\\ x{D7FF}\\ x{F900}-\\ x{FDCF}\\ x{FDF0}-\\ x{FFEF}]))))*(?:(?:(?:\\ x20|\\ x09)*(?:\\ x0d\\ x0a))?(\\ x20|\\ x09)+)?(?:\\ x22)))@(?:(?:(?:[a-zA-Z]|\\ d|[\\ x{00A0}-\\ x{D7FF}\\ x{F900}-\\ x{FDCF}\\ x{FDF0}-\\ x{FFEF}])|(?:(?:[a-zA-Z]|\\ d|[\\ x{00A0}-\\ x{D7FF}\\ x{F900}-\\ x{FDCF}\\ x{FDF0}-\\ x{FFEF}])(?:[a-zA-Z]|\\ d|-|\\ .|_|~|[\\ x{00A0}-\\ x{D7FF}\\ x{F900}-\\ x{FDCF}\\ x{FDF0}-\\ x{FFEF}])*(?:[a-zA-Z]|\\ d|[\\ x{00A0}-\\ x{D7FF}\\ x{F900}-\\ x{FDCF}\\ x{FDF0}-\\ x{FFEF}])))\\ .)+(?:(?:[a-zA-Z]|[\\ x{00A0}-\\ x{D7FF}\\ x{F900}-\\ x{FDCF}\\ x{FDF0}-\\ x{FFEF}])|(?:(?:[a-zA-Z]|[\\ x{00A0}-\\ x{D7FF}\\ x{F900}-\\ x{FDCF}\\ x{FDF0}-\\ x{FFEF}])(?:[a-zA-Z]|\\ d|-|\\ .|_|~|[\\ x{00A0}-\\ x{D7FF}\\ x{F900}-\\ x{FDCF}\\ x{FDF0}-\\ x{FFEF}])*(?:[a-zA-Z]|[\\ x{00A0}-\\ x{D7FF}\\ x{F900}-\\ x{FDCF}\\ x{FDF0}-\\ x{FFEF}])))\\ .?$"
17- base64RegexString = "(?:^(?:[A-Za-z0-9+\\ /]{4}\\ n?)*(?:[A-Za-z0-9+\\ /]{2}==|[A-Za-z0-9+\\ /]{3}=)$)"
18- iSBN10RegexString = "^(?:[0-9]{9}X|[0-9]{10})$"
19- iSBN13RegexString = "^(?:(?:97(?:8|9))[0-9]{10})$"
20- uUID3RegexString = "^[0-9a-f]{8}-[0-9a-f]{4}-3[0-9a-f]{3}-[0-9a-f]{4}-[0-9a-f]{12}$"
21- uUID4RegexString = "^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
22- uUID5RegexString = "^[0-9a-f]{8}-[0-9a-f]{4}-5[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
23- uUIDRegexString = "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
6+ alphaRegexString = "^[a-zA-Z]+$"
7+ alphaNumericRegexString = "^[a-zA-Z0-9]+$"
8+ numericRegexString = "^[-+]?[0-9]+(?:\\ .[0-9]+)?$"
9+ numberRegexString = "^[0-9]+$"
10+ hexadecimalRegexString = "^[0-9a-fA-F]+$"
11+ hexcolorRegexString = "^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$"
12+ rgbRegexString = "^rgb\\ (\\ s*(?:(?:0|[1-9]\\ d?|1\\ d\\ d?|2[0-4]\\ d|25[0-5])\\ s*,\\ s*(?:0|[1-9]\\ d?|1\\ d\\ d?|2[0-4]\\ d|25[0-5])\\ s*,\\ s*(?:0|[1-9]\\ d?|1\\ d\\ d?|2[0-4]\\ d|25[0-5])|(?:0|[1-9]\\ d?|1\\ d\\ d?|2[0-4]\\ d|25[0-5])%\\ s*,\\ s*(?:0|[1-9]\\ d?|1\\ d\\ d?|2[0-4]\\ d|25[0-5])%\\ s*,\\ s*(?:0|[1-9]\\ d?|1\\ d\\ d?|2[0-4]\\ d|25[0-5])%)\\ s*\\ )$"
13+ rgbaRegexString = "^rgba\\ (\\ s*(?:(?:0|[1-9]\\ d?|1\\ d\\ d?|2[0-4]\\ d|25[0-5])\\ s*,\\ s*(?:0|[1-9]\\ d?|1\\ d\\ d?|2[0-4]\\ d|25[0-5])\\ s*,\\ s*(?:0|[1-9]\\ d?|1\\ d\\ d?|2[0-4]\\ d|25[0-5])|(?:0|[1-9]\\ d?|1\\ d\\ d?|2[0-4]\\ d|25[0-5])%\\ s*,\\ s*(?:0|[1-9]\\ d?|1\\ d\\ d?|2[0-4]\\ d|25[0-5])%\\ s*,\\ s*(?:0|[1-9]\\ d?|1\\ d\\ d?|2[0-4]\\ d|25[0-5])%)\\ s*,\\ s*(?:(?:0.[1-9]*)|[01])\\ s*\\ )$"
14+ hslRegexString = "^hsl\\ (\\ s*(?:0|[1-9]\\ d?|[12]\\ d\\ d|3[0-5]\\ d|360)\\ s*,\\ s*(?:(?:0|[1-9]\\ d?|100)%)\\ s*,\\ s*(?:(?:0|[1-9]\\ d?|100)%)\\ s*\\ )$"
15+ hslaRegexString = "^hsla\\ (\\ s*(?:0|[1-9]\\ d?|[12]\\ d\\ d|3[0-5]\\ d|360)\\ s*,\\ s*(?:(?:0|[1-9]\\ d?|100)%)\\ s*,\\ s*(?:(?:0|[1-9]\\ d?|100)%)\\ s*,\\ s*(?:(?:0.[1-9]*)|[01])\\ s*\\ )$"
16+ emailRegexString = "^(?:(?:(?:(?:[a-zA-Z]|\\ d|[!#\\ $%&'\\ *\\ +\\ -\\ /=\\ ?\\ ^_`{\\ |}~]|[\\ x{00A0}-\\ x{D7FF}\\ x{F900}-\\ x{FDCF}\\ x{FDF0}-\\ x{FFEF}])+(?:\\ .([a-zA-Z]|\\ d|[!#\\ $%&'\\ *\\ +\\ -\\ /=\\ ?\\ ^_`{\\ |}~]|[\\ x{00A0}-\\ x{D7FF}\\ x{F900}-\\ x{FDCF}\\ x{FDF0}-\\ x{FFEF}])+)*)|(?:(?:\\ x22)(?:(?:(?:(?:\\ x20|\\ x09)*(?:\\ x0d\\ x0a))?(?:\\ x20|\\ x09)+)?(?:(?:[\\ x01-\\ x08\\ x0b\\ x0c\\ x0e-\\ x1f\\ x7f]|\\ x21|[\\ x23-\\ x5b]|[\\ x5d-\\ x7e]|[\\ x{00A0}-\\ x{D7FF}\\ x{F900}-\\ x{FDCF}\\ x{FDF0}-\\ x{FFEF}])|(?:\\ (?:[\\ x01-\\ x09\\ x0b\\ x0c\\ x0d-\\ x7f]|[\\ x{00A0}-\\ x{D7FF}\\ x{F900}-\\ x{FDCF}\\ x{FDF0}-\\ x{FFEF}]))))*(?:(?:(?:\\ x20|\\ x09)*(?:\\ x0d\\ x0a))?(\\ x20|\\ x09)+)?(?:\\ x22)))@(?:(?:(?:[a-zA-Z]|\\ d|[\\ x{00A0}-\\ x{D7FF}\\ x{F900}-\\ x{FDCF}\\ x{FDF0}-\\ x{FFEF}])|(?:(?:[a-zA-Z]|\\ d|[\\ x{00A0}-\\ x{D7FF}\\ x{F900}-\\ x{FDCF}\\ x{FDF0}-\\ x{FFEF}])(?:[a-zA-Z]|\\ d|-|\\ .|_|~|[\\ x{00A0}-\\ x{D7FF}\\ x{F900}-\\ x{FDCF}\\ x{FDF0}-\\ x{FFEF}])*(?:[a-zA-Z]|\\ d|[\\ x{00A0}-\\ x{D7FF}\\ x{F900}-\\ x{FDCF}\\ x{FDF0}-\\ x{FFEF}])))\\ .)+(?:(?:[a-zA-Z]|[\\ x{00A0}-\\ x{D7FF}\\ x{F900}-\\ x{FDCF}\\ x{FDF0}-\\ x{FFEF}])|(?:(?:[a-zA-Z]|[\\ x{00A0}-\\ x{D7FF}\\ x{F900}-\\ x{FDCF}\\ x{FDF0}-\\ x{FFEF}])(?:[a-zA-Z]|\\ d|-|\\ .|_|~|[\\ x{00A0}-\\ x{D7FF}\\ x{F900}-\\ x{FDCF}\\ x{FDF0}-\\ x{FFEF}])*(?:[a-zA-Z]|[\\ x{00A0}-\\ x{D7FF}\\ x{F900}-\\ x{FDCF}\\ x{FDF0}-\\ x{FFEF}])))\\ .?$"
17+ base64RegexString = "^(?:[A-Za-z0-9+\\ /]{4})*(?:[A-Za-z0-9+\\ /]{2}==|[A-Za-z0-9+\\ /]{3}=|[A-Za-z0-9+\\ /]{4})$"
18+ iSBN10RegexString = "^(?:[0-9]{9}X|[0-9]{10})$"
19+ iSBN13RegexString = "^(?:(?:97(?:8|9))[0-9]{10})$"
20+ uUID3RegexString = "^[0-9a-f]{8}-[0-9a-f]{4}-3[0-9a-f]{3}-[0-9a-f]{4}-[0-9a-f]{12}$"
21+ uUID4RegexString = "^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
22+ uUID5RegexString = "^[0-9a-f]{8}-[0-9a-f]{4}-5[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
23+ uUIDRegexString = "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
24+ aSCIIRegexString = "^[\x00 -\x7F ]*$"
25+ printableASCIIRegexString = "^[\x20 -\x7E ]*$"
26+ multibyteRegexString = "[^\x00 -\x7F ]"
27+ dataURIRegexString = "^data:.+\\ /(.+);base64$"
28+ latitudeRegexString = "^[-+]?([1-8]?\\ d(\\ .\\ d+)?|90(\\ .0+)?)$"
29+ longitudeRegexString = "^[-+]?(180(\\ .0+)?|((1[0-7]\\ d)|([1-9]?\\ d))(\\ .\\ d+)?)$"
30+ sSNRegexString = `^\d{3}[- ]?\d{2}[- ]?\d{4}$`
2431)
2532
2633var (
27- alphaRegex = regexp .MustCompile (alphaRegexString )
28- alphaNumericRegex = regexp .MustCompile (alphaNumericRegexString )
29- numericRegex = regexp .MustCompile (numericRegexString )
30- numberRegex = regexp .MustCompile (numberRegexString )
31- hexadecimalRegex = regexp .MustCompile (hexadecimalRegexString )
32- hexcolorRegex = regexp .MustCompile (hexcolorRegexString )
33- rgbRegex = regexp .MustCompile (rgbRegexString )
34- rgbaRegex = regexp .MustCompile (rgbaRegexString )
35- hslRegex = regexp .MustCompile (hslRegexString )
36- hslaRegex = regexp .MustCompile (hslaRegexString )
37- emailRegex = regexp .MustCompile (emailRegexString )
38- base64Regex = regexp .MustCompile (base64RegexString )
39- iSBN10Regex = regexp .MustCompile (iSBN10RegexString )
40- iSBN13Regex = regexp .MustCompile (iSBN13RegexString )
41- uUID3Regex = regexp .MustCompile (uUID3RegexString )
42- uUID4Regex = regexp .MustCompile (uUID4RegexString )
43- uUID5Regex = regexp .MustCompile (uUID5RegexString )
44- uUIDRegex = regexp .MustCompile (uUIDRegexString )
34+ alphaRegex = regexp .MustCompile (alphaRegexString )
35+ alphaNumericRegex = regexp .MustCompile (alphaNumericRegexString )
36+ numericRegex = regexp .MustCompile (numericRegexString )
37+ numberRegex = regexp .MustCompile (numberRegexString )
38+ hexadecimalRegex = regexp .MustCompile (hexadecimalRegexString )
39+ hexcolorRegex = regexp .MustCompile (hexcolorRegexString )
40+ rgbRegex = regexp .MustCompile (rgbRegexString )
41+ rgbaRegex = regexp .MustCompile (rgbaRegexString )
42+ hslRegex = regexp .MustCompile (hslRegexString )
43+ hslaRegex = regexp .MustCompile (hslaRegexString )
44+ emailRegex = regexp .MustCompile (emailRegexString )
45+ base64Regex = regexp .MustCompile (base64RegexString )
46+ iSBN10Regex = regexp .MustCompile (iSBN10RegexString )
47+ iSBN13Regex = regexp .MustCompile (iSBN13RegexString )
48+ uUID3Regex = regexp .MustCompile (uUID3RegexString )
49+ uUID4Regex = regexp .MustCompile (uUID4RegexString )
50+ uUID5Regex = regexp .MustCompile (uUID5RegexString )
51+ uUIDRegex = regexp .MustCompile (uUIDRegexString )
52+ aSCIIRegex = regexp .MustCompile (aSCIIRegexString )
53+ printableASCIIRegex = regexp .MustCompile (printableASCIIRegexString )
54+ multibyteRegex = regexp .MustCompile (multibyteRegexString )
55+ dataURIRegex = regexp .MustCompile (dataURIRegexString )
56+ latitudeRegex = regexp .MustCompile (latitudeRegexString )
57+ longitudeRegex = regexp .MustCompile (longitudeRegexString )
58+ sSNRegex = regexp .MustCompile (sSNRegexString )
4559)
4660
4761func matchesRegex (regex * regexp.Regexp , field interface {}) bool {
0 commit comments