Categorias

Poderosa validação de domínios com expressão regular

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 IANAInternet 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.

Veja este código em funcionamento

'------------------------------------------------------------------------------------
'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