💯Go Struct and Field validation, including Cross Field, Cross Struct, Map, Slice and Array diving
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
package validator
|
|
|
|
|
|
|
|
import "regexp"
|
|
|
|
|
|
|
|
const (
|
|
|
|
alphaRegexString string = "^[a-zA-Z]+$"
|
|
|
|
alphaNumericRegexString string = "^[a-zA-Z0-9]+$"
|
|
|
|
numericRegexString string = "^[-+]?[0-9]+(?:\\.[0-9]+)?$"
|
|
|
|
numberRegexString string = "^[0-9]+$"
|
|
|
|
hexadecimalRegexString string = "^[0-9a-fA-F]+$"
|
|
|
|
hexcolorRegexString string = "^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$"
|
|
|
|
emailRegexString string = "^(((([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}])))\\.?$"
|
|
|
|
)
|
|
|
|
|
|
|
|
var (
|
|
|
|
alphaRegex = regexp.MustCompile(alphaRegexString)
|
|
|
|
alphaNumericRegex = regexp.MustCompile(alphaNumericRegexString)
|
|
|
|
numericRegex = regexp.MustCompile(numericRegexString)
|
|
|
|
numberRegex = regexp.MustCompile(numberRegexString)
|
|
|
|
hexadecimalRegex = regexp.MustCompile(hexadecimalRegexString)
|
|
|
|
hexcolorRegex = regexp.MustCompile(hexcolorRegexString)
|
|
|
|
emailRegex = regexp.MustCompile(emailRegexString)
|
|
|
|
)
|