Apresento a vocês uma poderosa função para validação de domínios, incluindo os DPNs (Domínio de Primeiro Nível) válidos pelo IANA – Internet Assigned Numbers Authority
IANA é o orgão responsável pela coordenação de alguns dos principais elementos chaves que mantêm a internet, tais como a resolução para a criação dos DPNs.
Nesta função é utilizada uma expressão regular que faz a validação de todas as combinações possíveis e válidas de DPNs. A função é totalmente portável para outras linguagens como Java, PHP, RoR, ASP.Net e etc, bastando apenas utilizar a expressão regular.
Utilize a demonstração para testar a função e ver como é útil.
'------------------------------------------------------------------------------------ 'Funcao: CheckDominio(ByVal Dominio) 'Sinopse: Verifica se o domínio é válido através de Expressão regular validando ' os DPNs de acordo com o IANA 'Parametro: Dominio 'Retorno: Booleano 'Autor: Gabriel Fróes - www.codigofonte.com.br '------------------------------------------------------------------------------------ Function CheckDominio(ByVal Dominio) 'Declarações Dim regEx Dim Retorno 'Validando via RegExp Set regEx = New RegExp 'Cria o Objeto Expressão regEx.Pattern = "^([a-z0-9]([-a-z0-9]*[a-z0-9])?.)+((a[cdefgilmnoqrstuwxz]|aero|arpa)|(b[abdefghijmnorstvwyz]|biz)|(c[acdfghiklmnorsuvxyz]|cat|com|coop)|d[ejkmoz]|(e[ceghrstu]|edu)|f[ijkmor]|(g[abdefghilmnpqrstuwy]|gov)|h[kmnrtu]|(i[delmnoqrst]|info|int)|(j[emop]|jobs)|k[eghimnprwyz]|l[abcikrstuvy]|(m[acdghklmnopqrstuvwxyz]|mil|mobi|museum)|(n[acefgilopruz]|name|net)|(om|org)|(p[aefghklmnrstwy]|pro)|qa|r[eouw]|s[abcdeghijklmnortvyz]|(t[cdfghjklmnoprtvwz]|travel)|u[agkmsyz]|v[aceginu]|w[fs]|y[etu]|z[amw])$" ' Expressão Regular regEx.IgnoreCase = True ' Sensitivo ou não regEx.Global = True Retorno = regEx.Test(Dominio) Set regEx = Nothing 'Retorno CheckDominio = Retorno End Function