From dbd50b343f0badc53b0d4627eac5d12a205bbe72 Mon Sep 17 00:00:00 2001 From: Bruno Lorenz Date: Sat, 5 Aug 2017 17:07:23 +0200 Subject: [PATCH] Code hygiene - Minor performance improve for FQDN validation - Fix typo in documentation - Simplified hostname regex --- baked_in.go | 4 ++-- doc.go | 2 +- regexes.go | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/baked_in.go b/baked_in.go index cc65752..7ea3ec3 100644 --- a/baked_in.go +++ b/baked_in.go @@ -1491,6 +1491,6 @@ func isFQDN(fl FieldLevel) bool { val = val[0 : len(val)-1] } - return hostnameRegex.MatchString(val) && - (strings.IndexAny(val, ".") > -1) + return (strings.IndexAny(val, ".") > -1) && + hostnameRegex.MatchString(val) } diff --git a/doc.go b/doc.go index 77e35fe..d7f3606 100644 --- a/doc.go +++ b/doc.go @@ -796,7 +796,7 @@ Note: See Go's ParseMAC for accepted formats and types: Hostname -This validates that a stringa value is a valid Hostname +This validates that a string value is a valid Hostname Usage: hostname diff --git a/regexes.go b/regexes.go index d8d8a22..ec78ceb 100644 --- a/regexes.go +++ b/regexes.go @@ -30,7 +30,7 @@ const ( latitudeRegexString = "^[-+]?([1-8]?\\d(\\.\\d+)?|90(\\.0+)?)$" longitudeRegexString = "^[-+]?(180(\\.0+)?|((1[0-7]\\d)|([1-9]?\\d))(\\.\\d+)?)$" sSNRegexString = `^\d{3}[- ]?\d{2}[- ]?\d{4}$` - hostnameRegexString = `^(([a-zA-Z]|[a-zA-Z][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z]|[A-Za-z][A-Za-z0-9\-]*[A-Za-z0-9])$` + hostnameRegexString = `^[a-zA-Z][a-zA-Z0-9\-\.]+[a-z-Az0-9]$` ) var (