govalidator: github.com/asaskevich/govalidator Index | Examples | Files

package govalidator

import "github.com/asaskevich/govalidator"

Package govalidator is package of validators and sanitizers for strings, structs and collections.

Index

Examples

Package Files

arrays.go converter.go doc.go error.go numerics.go patterns.go types.go utils.go validator.go

Constants

const (
    Email          string = "" /* 1210 byte string literal not displayed */
    CreditCard     string = "" /* 233 byte string literal not displayed */
    ISBN10         string = "^(?:[0-9]{9}X|[0-9]{10})$"
    ISBN13         string = "^(?:[0-9]{13})$"
    UUID3          string = "^[0-9a-f]{8}-[0-9a-f]{4}-3[0-9a-f]{3}-[0-9a-f]{4}-[0-9a-f]{12}$"
    UUID4          string = "^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
    UUID5          string = "^[0-9a-f]{8}-[0-9a-f]{4}-5[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
    UUID           string = "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    Alpha          string = "^[a-zA-Z]+$"
    Alphanumeric   string = "^[a-zA-Z0-9]+$"
    Numeric        string = "^[0-9]+$"
    Int            string = "^(?:[-+]?(?:0|[1-9][0-9]*))$"
    Float          string = "^(?:[-+]?(?:[0-9]+))?(?:\\.[0-9]*)?(?:[eE][\\+\\-]?(?:[0-9]+))?$"
    Hexadecimal    string = "^[0-9a-fA-F]+$"
    Hexcolor       string = "^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$"
    RGBcolor       string = "" /* 159 byte string literal not displayed */
    ASCII          string = "^[\x00-\x7F]+$"
    Multibyte      string = "[^\x00-\x7F]"
    FullWidth      string = "[^\u0020-\u007E\uFF61-\uFF9F\uFFA0-\uFFDC\uFFE8-\uFFEE0-9a-zA-Z]"
    HalfWidth      string = "[\u0020-\u007E\uFF61-\uFF9F\uFFA0-\uFFDC\uFFE8-\uFFEE0-9a-zA-Z]"
    Base64         string = "^(?:[A-Za-z0-9+\\/]{4})*(?:[A-Za-z0-9+\\/]{2}==|[A-Za-z0-9+\\/]{3}=|[A-Za-z0-9+\\/]{4})$"
    PrintableASCII string = "^[\x20-\x7E]+$"
    DataURI        string = "^data:.+\\/(.+);base64$"
    MagnetURI      string = "^magnet:\\?xt=urn:[a-zA-Z0-9]+:[a-zA-Z0-9]{32,40}&dn=.+&tr=.+$"
    Latitude       string = "^[-+]?([1-8]?\\d(\\.\\d+)?|90(\\.0+)?)$"
    Longitude      string = "^[-+]?(180(\\.0+)?|((1[0-7]\\d)|([1-9]?\\d))(\\.\\d+)?)$"
    DNSName        string = `^([a-zA-Z0-9_]{1}[a-zA-Z0-9_-]{0,62}){1}(\.[a-zA-Z0-9_]{1}[a-zA-Z0-9_-]{0,62})*[\._]?$`
    IP             string = "" /* 661 byte string literal not displayed */
    URLSchema      string = `((ftp|tcp|udp|wss?|https?):\/\/)`
    URLUsername    string = `(\S+(:\S*)?@)`
    URLPath        string = `((\/|\?|#)[^\s]*)`
    URLPort        string = `(:(\d{1,5}))`
    URLIP          string = `([1-9]\d?|1\d\d|2[01]\d|22[0-3]|24\d|25[0-5])(\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])){2}(?:\.([0-9]\d?|1\d\d|2[0-4]\d|25[0-5]))`
    URLSubdomain   string = `((www\.)|([a-zA-Z0-9]+([-_\.]?[a-zA-Z0-9])*[a-zA-Z0-9]\.[a-zA-Z0-9]+))`
    URL            string = `^` + URLSchema + `?` + URLUsername + `?` + `((` + URLIP + `|(\[` + IP + `\])|(([a-zA-Z0-9]([a-zA-Z0-9-_]+)?[a-zA-Z0-9]([-\.][a-zA-Z0-9]+)*)|(` + URLSubdomain + `?))?(([a-zA-Z\x{00a1}-\x{ffff}0-9]+-?-?)*[a-zA-Z\x{00a1}-\x{ffff}0-9]+)(?:\.([a-zA-Z\x{00a1}-\x{ffff}]{1,}))?))\.?` + URLPort + `?` + URLPath + `?$`
    SSN            string = `^\d{3}[- ]?\d{2}[- ]?\d{4}$`
    WinPath        string = `^[a-zA-Z]:\\(?:[^\\/:*?"<>|\r\n]+\\)*[^\\/:*?"<>|\r\n]*$`
    UnixPath       string = `^(/[^/\x00]*)+/?$`
    Semver         string = "" /* 185 byte string literal not displayed */

    IMEI string = "^[0-9a-f]{14}$|^\\d{15}$|^\\d{18}$"
)

Basic regular expressions for validating strings

const (
    // Unknown is unresolved OS type
    Unknown = iota
    // Win is Windows type
    Win
    // Unix is *nix OS types
    Unix
)

Used by IsFilePath func

const RF3339WithoutZone = "2006-01-02T15:04:05"

Variables

var CustomTypeTagMap = &customTypeTagMap{validators: make(map[string]CustomTypeValidator)}

CustomTypeTagMap is a map of functions that can be used as tags for ValidateStruct function. Use this to validate compound or custom types that need to be handled as a whole, e.g. `type UUID [16]byte` (this would be handled as an array of bytes).

var Escape = html.EscapeString

Escape replaces <, >, & and " with HTML entities.

var ISO3166List = []ISO3166Entry{ /* 249 elements not displayed */

}

ISO3166List based on https://www.iso.org/obp/ui/#search/code/ Code Type "Officially Assigned Codes"

var ISO4217List = []string{ /* 178 elements not displayed */

}

ISO4217List is the list of ISO currency codes

var ISO693List = []ISO693Entry{ /* 184 elements not displayed */

}

ISO693List based on http://data.okfn.org/data/core/language-codes/r/language-codes-3b2.json

var InterfaceParamTagMap = map[string]InterfaceParamValidator{
    "type": IsType,
}

InterfaceParamTagMap is a map of functions accept variants parameters for an interface value

var InterfaceParamTagRegexMap = map[string]*regexp.Regexp{
    "type": regexp.MustCompile(`^type\((.*)\)$`),
}

InterfaceParamTagRegexMap maps interface param tags to their respective regexes.

var ParamTagMap = map[string]ParamValidator{
    "length":          ByteLength,
    "range":           Range,
    "runelength":      RuneLength,
    "stringlength":    StringLength,
    "matches":         StringMatches,
    "in":              IsInRaw,
    "rsapub":          IsRsaPub,
    "minstringlength": MinStringLength,
    "maxstringlength": MaxStringLength,
}

ParamTagMap is a map of functions accept variants parameters

var ParamTagRegexMap = map[string]*regexp.Regexp{
    "range":           regexp.MustCompile("^range\\((\\d+)\\|(\\d+)\\)$"),
    "length":          regexp.MustCompile("^length\\((\\d+)\\|(\\d+)\\)$"),
    "runelength":      regexp.MustCompile("^runelength\\((\\d+)\\|(\\d+)\\)$"),
    "stringlength":    regexp.MustCompile("^stringlength\\((\\d+)\\|(\\d+)\\)$"),
    "in":              regexp.MustCompile(`^in\((.*)\)`),
    "matches":         regexp.MustCompile(`^matches\((.+)\)$`),
    "rsapub":          regexp.MustCompile("^rsapub\\((\\d+)\\)$"),
    "minstringlength": regexp.MustCompile("^minstringlength\\((\\d+)\\)$"),
    "maxstringlength": regexp.MustCompile("^maxstringlength\\((\\d+)\\)$"),
}

ParamTagRegexMap maps param tags to their respective regexes.

var TagMap = map[string]Validator{
    "email":              IsEmail,
    "url":                IsURL,
    "dialstring":         IsDialString,
    "requrl":             IsRequestURL,
    "requri":             IsRequestURI,
    "alpha":              IsAlpha,
    "utfletter":          IsUTFLetter,
    "alphanum":           IsAlphanumeric,
    "utfletternum":       IsUTFLetterNumeric,
    "numeric":            IsNumeric,
    "utfnumeric":         IsUTFNumeric,
    "utfdigit":           IsUTFDigit,
    "hexadecimal":        IsHexadecimal,
    "hexcolor":           IsHexcolor,
    "rgbcolor":           IsRGBcolor,
    "lowercase":          IsLowerCase,
    "uppercase":          IsUpperCase,
    "int":                IsInt,
    "float":              IsFloat,
    "null":               IsNull,
    "notnull":            IsNotNull,
    "uuid":               IsUUID,
    "uuidv3":             IsUUIDv3,
    "uuidv4":             IsUUIDv4,
    "uuidv5":             IsUUIDv5,
    "creditcard":         IsCreditCard,
    "isbn10":             IsISBN10,
    "isbn13":             IsISBN13,
    "json":               IsJSON,
    "multibyte":          IsMultibyte,
    "ascii":              IsASCII,
    "printableascii":     IsPrintableASCII,
    "fullwidth":          IsFullWidth,
    "halfwidth":          IsHalfWidth,
    "variablewidth":      IsVariableWidth,
    "base64":             IsBase64,
    "datauri":            IsDataURI,
    "ip":                 IsIP,
    "port":               IsPort,
    "ipv4":               IsIPv4,
    "ipv6":               IsIPv6,
    "dns":                IsDNSName,
    "host":               IsHost,
    "mac":                IsMAC,
    "latitude":           IsLatitude,
    "longitude":          IsLongitude,
    "ssn":                IsSSN,
    "semver":             IsSemver,
    "rfc3339":            IsRFC3339,
    "rfc3339WithoutZone": IsRFC3339WithoutZone,
    "ISO3166Alpha2":      IsISO3166Alpha2,
    "ISO3166Alpha3":      IsISO3166Alpha3,
    "ISO4217":            IsISO4217,
    "IMEI":               IsIMEI,
}

TagMap is a map of functions, that can be used as tags for ValidateStruct function.

func Abs Uses

func Abs(value float64) float64

Abs returns absolute value of number

func BlackList Uses

func BlackList(str, chars string) string

BlackList removes characters that appear in the blacklist.

func ByteLength Uses

func ByteLength(str string, params ...string) bool

ByteLength check string's length

func CamelCaseToUnderscore Uses

func CamelCaseToUnderscore(str string) string

CamelCaseToUnderscore converts from camel case form to underscore separated form. Ex.: MyFunc => my_func

func Contains Uses

func Contains(str, substring string) bool

Contains checks if the string contains the substring.

func Count Uses

func Count(array []interface{}, iterator ConditionIterator) int

Count iterates over the slice and apply ConditionIterator to every item. Returns count of items that meets ConditionIterator.

Code:

data := []interface{}{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
var fn ConditionIterator = func(value interface{}, index int) bool {
    return value.(int)%2 == 0
}
_ = Count(data, fn) // result = 5

func Each Uses

func Each(array []interface{}, iterator Iterator)

Each iterates over the slice and apply Iterator to every item

Code:

data := []interface{}{1, 2, 3, 4, 5}
var fn Iterator = func(value interface{}, index int) {
    println(value.(int))
}
Each(data, fn)

func ErrorByField Uses

func ErrorByField(e error, field string) string

ErrorByField returns error for specified field of the struct validated by ValidateStruct or empty string if there are no errors or this field doesn't exists or doesn't have any errors.

func ErrorsByField Uses

func ErrorsByField(e error) map[string]string

ErrorsByField returns map of errors of the struct validated by ValidateStruct or empty map if there are no errors.

func Filter Uses

func Filter(array []interface{}, iterator ConditionIterator) []interface{}

Filter iterates over the slice and apply ConditionIterator to every item. Returns new slice.

Code:

data := []interface{}{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
var fn ConditionIterator = func(value interface{}, index int) bool {
    return value.(int)%2 == 0
}
_ = Filter(data, fn) // result = []interface{}{2, 4, 6, 8, 10}

func Find Uses

func Find(array []interface{}, iterator ConditionIterator) interface{}

Find iterates over the slice and apply ConditionIterator to every item. Returns first item that meet ConditionIterator or nil otherwise.

func GetLine Uses

func GetLine(s string, index int) (string, error)

GetLine returns specified line of multiline string

func GetLines Uses

func GetLines(s string) []string

GetLines splits string by "\n" and return array of lines

func HasLowerCase Uses

func HasLowerCase(str string) bool

HasLowerCase check if the string contains at least 1 lowercase. Empty string is valid.

func HasUpperCase Uses

func HasUpperCase(str string) bool

HasUpperCase check if the string contains as least 1 uppercase. Empty string is valid.

func HasWhitespace Uses

func HasWhitespace(str string) bool

HasWhitespace checks if the string contains any whitespace

func HasWhitespaceOnly Uses

func HasWhitespaceOnly(str string) bool

HasWhitespaceOnly checks the string only contains whitespace

func InRange Uses

func InRange(value interface{}, left interface{}, right interface{}) bool

InRange returns true if value lies between left and right border, generic type to handle int, float32 or float64, all types must the same type

func InRangeFloat32 Uses

func InRangeFloat32(value, left, right float32) bool

InRange returns true if value lies between left and right border

func InRangeFloat64 Uses

func InRangeFloat64(value, left, right float64) bool

InRange returns true if value lies between left and right border

func InRangeInt Uses

func InRangeInt(value, left, right interface{}) bool

InRange returns true if value lies between left and right border

func IsASCII Uses

func IsASCII(str string) bool

IsASCII check if the string contains ASCII chars only. Empty string is valid.

func IsAlpha Uses

func IsAlpha(str string) bool

IsAlpha check if the string contains only letters (a-zA-Z). Empty string is valid.

func IsAlphanumeric Uses

func IsAlphanumeric(str string) bool

IsAlphanumeric check if the string contains only letters and numbers. Empty string is valid.

func IsBase64 Uses

func IsBase64(str string) bool

IsBase64 check if a string is base64 encoded.

func IsByteLength Uses

func IsByteLength(str string, min, max int) bool

IsByteLength check if the string's length (in bytes) falls in a range.

func IsCIDR Uses

func IsCIDR(str string) bool

IsCIDR check if the string is an valid CIDR notiation (IPV4 & IPV6)

func IsCRC32 Uses

func IsCRC32(str string) bool

IsCRC32 checks is a string is a CRC32 hash. Alias for `IsHash(str, "crc32")`

func IsCRC32b Uses

func IsCRC32b(str string) bool

IsCRC32b checks is a string is a CRC32b hash. Alias for `IsHash(str, "crc32b")`

func IsCreditCard Uses

func IsCreditCard(str string) bool

IsCreditCard check if the string is a credit card.

func IsDNSName Uses

func IsDNSName(str string) bool

IsDNSName will validate the given string as a DNS name

func IsDataURI Uses

func IsDataURI(str string) bool

IsDataURI checks if a string is base64 encoded data URI such as an image

func IsDialString Uses

func IsDialString(str string) bool

IsDialString validates the given string for usage with the various Dial() functions

func IsDivisibleBy Uses

func IsDivisibleBy(str, num string) bool

IsDivisibleBy check if the string is a number that's divisible by another. If second argument is not valid integer or zero, it's return false. Otherwise, if first argument is not valid integer or zero, it's return true (Invalid string converts to zero).

This small example illustrate how to work with IsDivisibleBy function.

Code:

println("1024 is divisible by 64: ", IsDivisibleBy("1024", "64"))

func IsEmail Uses

func IsEmail(str string) bool

IsEmail check if the string is an email.

func IsExistingEmail Uses

func IsExistingEmail(email string) bool

IsExistingEmail check if the string is an email of existing domain

func IsFilePath Uses

func IsFilePath(str string) (bool, int)

IsFilePath check is a string is Win or Unix file path and returns it's type.

func IsFloat Uses

func IsFloat(str string) bool

IsFloat check if the string is a float.

func IsFullWidth Uses

func IsFullWidth(str string) bool

IsFullWidth check if the string contains any full-width chars. Empty string is valid.

func IsHalfWidth Uses

func IsHalfWidth(str string) bool

IsHalfWidth check if the string contains any half-width chars. Empty string is valid.

func IsHash Uses

func IsHash(str string, algorithm string) bool

IsHash checks if a string is a hash of type algorithm. Algorithm is one of ['md4', 'md5', 'sha1', 'sha256', 'sha384', 'sha512', 'ripemd128', 'ripemd160', 'tiger128', 'tiger160', 'tiger192', 'crc32', 'crc32b']

func IsHexadecimal Uses

func IsHexadecimal(str string) bool

IsHexadecimal check if the string is a hexadecimal number.

func IsHexcolor Uses

func IsHexcolor(str string) bool

IsHexcolor check if the string is a hexadecimal color.

func IsHost Uses

func IsHost(str string) bool

IsHost checks if the string is a valid IP (both v4 and v6) or a valid DNS name

func IsIMEI Uses

func IsIMEI(str string) bool

IsIMEI check if a string is valid IMEI

func IsIP Uses

func IsIP(str string) bool

IsIP checks if a string is either IP version 4 or 6. Alias for `net.ParseIP`

func IsIPv4 Uses

func IsIPv4(str string) bool

IsIPv4 check if the string is an IP version 4.

func IsIPv6 Uses

func IsIPv6(str string) bool

IsIPv6 check if the string is an IP version 6.

func IsISBN Uses

func IsISBN(str string, version int) bool

IsISBN check if the string is an ISBN (version 10 or 13). If version value is not equal to 10 or 13, it will be check both variants.

func IsISBN10 Uses

func IsISBN10(str string) bool

IsISBN10 check if the string is an ISBN version 10.

func IsISBN13 Uses

func IsISBN13(str string) bool

IsISBN13 check if the string is an ISBN version 13.

func IsISO3166Alpha2 Uses

func IsISO3166Alpha2(str string) bool

IsISO3166Alpha2 checks if a string is valid two-letter country code

func IsISO3166Alpha3 Uses

func IsISO3166Alpha3(str string) bool

IsISO3166Alpha3 checks if a string is valid three-letter country code

func IsISO4217 Uses

func IsISO4217(str string) bool

IsISO4217 check if string is valid ISO currency code

func IsISO693Alpha2 Uses

func IsISO693Alpha2(str string) bool

IsISO693Alpha2 checks if a string is valid two-letter language code

func IsISO693Alpha3b Uses

func IsISO693Alpha3b(str string) bool

IsISO693Alpha3b checks if a string is valid three-letter language code

func IsIn Uses

func IsIn(str string, params ...string) bool

IsIn check if string str is a member of the set of strings params

func IsInRaw Uses

func IsInRaw(str string, params ...string) bool

func IsInt Uses

func IsInt(str string) bool

IsInt check if the string is an integer. Empty string is valid.

func IsJSON Uses

func IsJSON(str string) bool

IsJSON check if the string is valid JSON (note: uses json.Unmarshal).

func IsLatitude Uses

func IsLatitude(str string) bool

IsLatitude check if a string is valid latitude.

func IsLongitude Uses

func IsLongitude(str string) bool

IsLongitude check if a string is valid longitude.

func IsLowerCase Uses

func IsLowerCase(str string) bool

IsLowerCase check if the string is lowercase. Empty string is valid.

func IsMAC Uses

func IsMAC(str string) bool

IsMAC check if a string is valid MAC address. Possible MAC formats: 01:23:45:67:89:ab 01:23:45:67:89:ab:cd:ef 01-23-45-67-89-ab 01-23-45-67-89-ab-cd-ef 0123.4567.89ab 0123.4567.89ab.cdef

func IsMD4 Uses

func IsMD4(str string) bool

IsMD4 checks is a string is a MD4 hash. Alias for `IsHash(str, "md4")`

func IsMD5 Uses

func IsMD5(str string) bool

IsMD5 checks is a string is a MD5 hash. Alias for `IsHash(str, "md5")`

func IsMagnetURI Uses

func IsMagnetURI(str string) bool

IsMagnetURI checks if a string is valid magnet URI

func IsMongoID Uses

func IsMongoID(str string) bool

IsMongoID check if the string is a valid hex-encoded representation of a MongoDB ObjectId.

func IsMultibyte Uses

func IsMultibyte(str string) bool

IsMultibyte check if the string contains one or more multibyte chars. Empty string is valid.

func IsNatural Uses

func IsNatural(value float64) bool

IsNatural returns true if value is natural number (positive and whole)

func IsNegative Uses

func IsNegative(value float64) bool

IsNegative returns true if value < 0

func IsNonNegative Uses

func IsNonNegative(value float64) bool

IsNonNegative returns true if value >= 0

func IsNonPositive Uses

func IsNonPositive(value float64) bool

IsNonPositive returns true if value <= 0

func IsNotNull Uses

func IsNotNull(str string) bool

IsNotNull check if the string is not null.

func IsNull Uses

func IsNull(str string) bool

IsNull check if the string is null.

func IsNumeric Uses

func IsNumeric(str string) bool

IsNumeric check if the string contains only numbers. Empty string is valid.

func IsPort Uses

func IsPort(str string) bool

IsPort checks if a string represents a valid port

func IsPositive Uses

func IsPositive(value float64) bool

IsPositive returns true if value > 0

func IsPrintableASCII Uses

func IsPrintableASCII(str string) bool

IsPrintableASCII check if the string contains printable ASCII chars only. Empty string is valid.

func IsRFC3339 Uses

func IsRFC3339(str string) bool

IsRFC3339 check if string is valid timestamp value according to RFC3339

func IsRFC3339WithoutZone Uses

func IsRFC3339WithoutZone(str string) bool

IsRFC3339WithoutZone check if string is valid timestamp value according to RFC3339 which excludes the timezone.

func IsRGBcolor Uses

func IsRGBcolor(str string) bool

IsRGBcolor check if the string is a valid RGB color in form rgb(RRR, GGG, BBB).

func IsRequestURI Uses

func IsRequestURI(rawurl string) bool

IsRequestURI check if the string rawurl, assuming it was received in an HTTP request, is an absolute URI or an absolute path.

func IsRequestURL Uses

func IsRequestURL(rawurl string) bool

IsRequestURL check if the string rawurl, assuming it was received in an HTTP request, is a valid URL confirm to RFC 3986

func IsRipeMD128 Uses

func IsRipeMD128(str string) bool

IsRipeMD128 checks is a string is a RipeMD128 hash. Alias for `IsHash(str, "ripemd128")`

func IsRipeMD160 Uses

func IsRipeMD160(str string) bool

IsRipeMD160 checks is a string is a RipeMD160 hash. Alias for `IsHash(str, "ripemd160")`

func IsRsaPub Uses

func IsRsaPub(str string, params ...string) bool

IsRsaPub check whether string is valid RSA key Alias for IsRsaPublicKey

func IsRsaPublicKey Uses

func IsRsaPublicKey(str string, keylen int) bool

IsRsaPublicKey check if a string is valid public key with provided length

func IsSHA1 Uses

func IsSHA1(str string) bool

IsSHA1 checks is a string is a SHA-1 hash. Alias for `IsHash(str, "sha1")`

func IsSHA256 Uses

func IsSHA256(str string) bool

IsSHA256 checks is a string is a SHA256 hash. Alias for `IsHash(str, "sha256")`

func IsSHA384 Uses

func IsSHA384(str string) bool

IsSHA384 checks is a string is a SHA384 hash. Alias for `IsHash(str, "sha384")`

func IsSHA512 Uses

func IsSHA512(str string) bool

IsSHA512 checks is a string is a SHA512 hash. Alias for `IsHash(str, "sha512")`

func IsSSN Uses

func IsSSN(str string) bool

IsSSN will validate the given string as a U.S. Social Security Number

func IsSemver Uses

func IsSemver(str string) bool

IsSemver check if string is valid semantic version

func IsTiger128 Uses

func IsTiger128(str string) bool

IsTiger128 checks is a string is a Tiger128 hash. Alias for `IsHash(str, "tiger128")`

func IsTiger160 Uses

func IsTiger160(str string) bool

IsTiger160 checks is a string is a Tiger160 hash. Alias for `IsHash(str, "tiger160")`

func IsTiger192 Uses

func IsTiger192(str string) bool

IsTiger192 checks is a string is a Tiger192 hash. Alias for `IsHash(str, "tiger192")`

func IsTime Uses

func IsTime(str string, format string) bool

IsTime check if string is valid according to given format

func IsType Uses

func IsType(v interface{}, params ...string) bool

IsType check if interface is of some type

func IsURL Uses

func IsURL(str string) bool

IsURL check if the string is an URL.

func IsUTFDigit Uses

func IsUTFDigit(str string) bool

IsUTFDigit check if the string contains only unicode radix-10 decimal digits. Empty string is valid.

func IsUTFLetter Uses

func IsUTFLetter(str string) bool

IsUTFLetter check if the string contains only unicode letter characters. Similar to IsAlpha but for all languages. Empty string is valid.

func IsUTFLetterNumeric Uses

func IsUTFLetterNumeric(str string) bool

IsUTFLetterNumeric check if the string contains only unicode letters and numbers. Empty string is valid.

func IsUTFNumeric Uses

func IsUTFNumeric(str string) bool

IsUTFNumeric check if the string contains only unicode numbers of any kind. Numbers can be 0-9 but also Fractions ¾,Roman Ⅸ and Hangzhou 〩. Empty string is valid.

func IsUUID Uses

func IsUUID(str string) bool

IsUUID check if the string is a UUID (version 3, 4 or 5).

func IsUUIDv3 Uses

func IsUUIDv3(str string) bool

IsUUIDv3 check if the string is a UUID version 3.

func IsUUIDv4 Uses

func IsUUIDv4(str string) bool

IsUUIDv4 check if the string is a UUID version 4.

func IsUUIDv5 Uses

func IsUUIDv5(str string) bool

IsUUIDv5 check if the string is a UUID version 5.

func IsUnixTime Uses

func IsUnixTime(str string) bool

IsUnixTime check if string is valid unix timestamp value

func IsUpperCase Uses

func IsUpperCase(str string) bool

IsUpperCase check if the string is uppercase. Empty string is valid.

func IsVariableWidth Uses

func IsVariableWidth(str string) bool

IsVariableWidth check if the string contains a mixture of full and half-width chars. Empty string is valid.

func IsWhole Uses

func IsWhole(value float64) bool

IsWhole returns true if value is whole number

func LeftTrim Uses

func LeftTrim(str, chars string) string

LeftTrim trims characters from the left side of the input. If second argument is empty, it will remove leading spaces.

func Map Uses

func Map(array []interface{}, iterator ResultIterator) []interface{}

Map iterates over the slice and apply ResultIterator to every item. Returns new slice as a result.

Code:

data := []interface{}{1, 2, 3, 4, 5}
var fn ResultIterator = func(value interface{}, index int) interface{} {
    return value.(int) * 3
}
_ = Map(data, fn) // result = []interface{}{1, 6, 9, 12, 15}

func Matches Uses

func Matches(str, pattern string) bool

Matches checks if string matches the pattern (pattern is regular expression) In case of error return false

func MaxStringLength Uses

func MaxStringLength(str string, params ...string) bool

MaxStringLength check string's maximum length (including multi byte strings)

func MinStringLength Uses

func MinStringLength(str string, params ...string) bool

MinStringLength check string's minimum length (including multi byte strings)

func NormalizeEmail Uses

func NormalizeEmail(str string) (string, error)

NormalizeEmail canonicalize an email address. The local part of the email address is lowercased for all domains; the hostname is always lowercased and the local part of the email address is always lowercased for hosts that are known to be case-insensitive (currently only GMail). Normalization follows special rules for known providers: currently, GMail addresses have dots removed in the local part and are stripped of tags (e.g. some.one+tag@gmail.com becomes someone@gmail.com) and all @googlemail.com addresses are normalized to @gmail.com.

func PadBoth Uses

func PadBoth(str string, padStr string, padLen int) string

PadBoth pads both sides of a string if size of string is less then indicated pad length

func PadLeft Uses

func PadLeft(str string, padStr string, padLen int) string

PadLeft pads left side of a string if size of string is less then indicated pad length

func PadRight Uses

func PadRight(str string, padStr string, padLen int) string

PadRight pads right side of a string if size of string is less then indicated pad length

func PrependPathToErrors Uses

func PrependPathToErrors(err error, path string) error

func Range Uses

func Range(str string, params ...string) bool

Range check string's length

func RemoveTags Uses

func RemoveTags(s string) string

RemoveTags removes all tags from HTML string

func ReplacePattern Uses

func ReplacePattern(str, pattern, replace string) string

ReplacePattern replaces regular expression pattern in string

This small example illustrate how to work with ReplacePattern function.

Code:

// Replace in "http123123ftp://git534543hub.comio" following (pattern "(ftp|io|[0-9]+)"):
// - Sequence "ftp".
// - Sequence "io".
// - Sequence of digits.
// with empty string.
println(ReplacePattern("http123123ftp://git534543hub.comio", "(ftp|io|[0-9]+)", "") == "http://github.com")

func Reverse Uses

func Reverse(s string) string

Reverse returns reversed string

func RightTrim Uses

func RightTrim(str, chars string) string

RightTrim trims characters from the right side of the input. If second argument is empty, it will remove trailing spaces.

func RuneLength Uses

func RuneLength(str string, params ...string) bool

RuneLength check string's length Alias for StringLength

func SafeFileName Uses

func SafeFileName(str string) string

SafeFileName returns safe string that can be used in file names

func SetFieldsRequiredByDefault Uses

func SetFieldsRequiredByDefault(value bool)

SetFieldsRequiredByDefault causes validation to fail when struct fields do not include validations or are not explicitly marked as exempt (using `valid:"-"` or `valid:"email,optional"`). This struct definition will fail govalidator.ValidateStruct() (and the field values do not matter):

type exampleStruct struct {
    Name  string ``
    Email string `valid:"email"`

This, however, will only fail when Email is empty or an invalid email address:

type exampleStruct2 struct {
    Name  string `valid:"-"`
    Email string `valid:"email"`

Lastly, this will only fail when Email is an invalid email address but not when it's empty:

type exampleStruct2 struct {
    Name  string `valid:"-"`
    Email string `valid:"email,optional"`

func SetNilPtrAllowedByRequired Uses

func SetNilPtrAllowedByRequired(value bool)

SetNilPtrAllowedByRequired causes validation to pass for nil ptrs when a field is set to required. The validation will still reject ptr fields in their zero value state. Example with this enabled:

type exampleStruct struct {
    Name  *string `valid:"required"`

With `Name` set to "", this will be considered invalid input and will cause a validation error. With `Name` set to nil, this will be considered valid by validation. By default this is disabled.

func Sign Uses

func Sign(value float64) float64

Sign returns signum of number: 1 in case of value > 0, -1 in case of value < 0, 0 otherwise

func StringLength Uses

func StringLength(str string, params ...string) bool

StringLength check string's length (including multi byte strings)

func StringMatches Uses

func StringMatches(s string, params ...string) bool

StringMatches checks if a string matches a given pattern.

func StripLow Uses

func StripLow(str string, keepNewLines bool) string

StripLow removes characters with a numerical value < 32 and 127, mostly control characters. If keep_new_lines is true, newline characters are preserved (\n and \r, hex 0xA and 0xD).

func ToBoolean Uses

func ToBoolean(str string) (bool, error)

ToBoolean convert the input string to a boolean.

func ToFloat Uses

func ToFloat(str string) (float64, error)

ToFloat convert the input string to a float, or 0.0 if the input is not a float.

func ToInt Uses

func ToInt(value interface{}) (res int64, err error)

ToInt convert the input string or any int type to an integer type 64, or 0 if the input is not an integer.

func ToJSON Uses

func ToJSON(obj interface{}) (string, error)

ToJSON convert the input to a valid JSON string

func ToString Uses

func ToString(obj interface{}) string

ToString convert the input to a string.

func Trim Uses

func Trim(str, chars string) string

Trim trims characters from both sides of the input. If second argument is empty, it will remove spaces.

This small example illustrate how to work with Trim function.

Code:

// Remove from left and right spaces and "\r", "\n", "\t" characters
println(Trim("   \r\r\ntext\r   \t\n", "") == "text")
// Remove from left and right characters that are between "1" and "8".
// "1-8" is like full list "12345678".
println(Trim("1234567890987654321", "1-8") == "909")

func Truncate Uses

func Truncate(str string, length int, ending string) string

Truncate a string to the closest length without breaking words.

func TruncatingErrorf Uses

func TruncatingErrorf(str string, args ...interface{}) error

TruncatingErrorf removes extra args from fmt.Errorf if not formatted in the str object

func UnderscoreToCamelCase Uses

func UnderscoreToCamelCase(s string) string

UnderscoreToCamelCase converts from underscore separated form to camel case form. Ex.: my_func => MyFunc

func ValidateMap Uses

func ValidateMap(s map[string]interface{}, m map[string]interface{}) (bool, error)

ValidateMap use validation map for fields. result will be equal to `false` if there are any errors. s is the map containing the data to be validated. m is the validation map in the form:

map[string]interface{}{"name":"required,alpha","address":map[string]interface{}{"line1":"required,alphanum"}}

func ValidateStruct Uses

func ValidateStruct(s interface{}) (bool, error)

ValidateStruct use tags for fields. result will be equal to `false` if there are any errors. todo currently there is no guarantee that errors will be returned in predictable order (tests may to fail)

Code:

type Post struct {
    Title    string `valid:"alphanum,required"`
    Message  string `valid:"duck,ascii"`
    AuthorIP string `valid:"ipv4"`
}
post := &Post{"My Example Post", "duck", "123.234.54.3"}

//Add your own struct validation tags
TagMap["duck"] = Validator(func(str string) bool {
    return str == "duck"
})

result, err := ValidateStruct(post)
if err != nil {
    println("error: " + err.Error())
}
println(result)

func WhiteList Uses

func WhiteList(str, chars string) string

WhiteList removes characters that do not appear in the whitelist.

This small example illustrate how to work with WhiteList function.

Code:

// Remove all characters from string ignoring characters between "a" and "z"
println(WhiteList("a3a43a5a4a3a2a23a4a5a4a3a4", "a-z") == "aaaaaaaaaaaa")

type ConditionIterator Uses

type ConditionIterator func(interface{}, int) bool

ConditionIterator is the function that accepts element of slice/array and its index and returns boolean

type CustomTypeValidator Uses

type CustomTypeValidator func(i interface{}, o interface{}) bool

CustomTypeValidator is a wrapper for validator functions that returns bool and accepts any type. The second parameter should be the context (in the case of validating a struct: the whole object being validated).

type Error Uses

type Error struct {
    Name                     string
    Err                      error
    CustomErrorMessageExists bool

    // Validator indicates the name of the validator that failed
    Validator string
    Path      []string
}

Error encapsulates a name, an error and whether there's a custom error message or not.

func (Error) Error Uses

func (e Error) Error() string

type Errors Uses

type Errors []error

Errors is an array of multiple errors and conforms to the error interface.

func (Errors) Error Uses

func (es Errors) Error() string

func (Errors) Errors Uses

func (es Errors) Errors() []error

Errors returns itself.

type ISO3166Entry Uses

type ISO3166Entry struct {
    EnglishShortName string
    FrenchShortName  string
    Alpha2Code       string
    Alpha3Code       string
    Numeric          string
}

ISO3166Entry stores country codes

type ISO693Entry Uses

type ISO693Entry struct {
    Alpha3bCode string
    Alpha2Code  string
    English     string
}

ISO693Entry stores ISO language codes

type InterfaceParamValidator Uses

type InterfaceParamValidator func(in interface{}, params ...string) bool

type Iterator Uses

type Iterator func(interface{}, int)

Iterator is the function that accepts element of slice/array and its index

type ParamValidator Uses

type ParamValidator func(str string, params ...string) bool

ParamValidator is a wrapper for validator functions that accepts additional parameters.

type ResultIterator Uses

type ResultIterator func(interface{}, int) interface{}

ResultIterator is the function that accepts element of slice/array and its index and returns any result

type UnsupportedTypeError Uses

type UnsupportedTypeError struct {
    Type reflect.Type
}

UnsupportedTypeError is a wrapper for reflect.Type

func (*UnsupportedTypeError) Error Uses

func (e *UnsupportedTypeError) Error() string

Error returns string equivalent for reflect.Type

type Validator Uses

type Validator func(str string) bool

Validator is a wrapper for a validator function that returns bool and accepts string.

Package govalidator imports 23 packages (graph) and is imported by 806 packages. Updated 2020-04-28. Refresh now. Tools for package owners.