Desenvolvimento - C#

Usando expressões regulares para validar formato de e-mail e CEP

Neste artigo aprenderemos como verificar se o formato de email e ou CEP informado pelo usuário é correto usando as expressões regulares.

por Fernanda Sallai



Neste artigo aprenderemos como verificar se o formato de email e ou CEP informado pelo usuário é correto usando as expressões regulares.

OBS: Estou realizando a validação através de código gerenciado, mas é possível fazer a mesma validação utilizando componentes do próprio Visual Studio, mas isso não será abordado neste artigo.

Primeiramente. Mas o que são expressões regulares?!

Conforme Aurélio Marinho Jargas "É uma composição de símbolos, caracteres com funções especiais, que, agrupados entre si e com caracteres literais, formam uma seqüência, uma expressão. Esta expressão é interpretada como uma regra, que indicará sucesso se uma entrada de dados qualquer estiver de acordo com essa regra, ou seja, obedecer exatamente a todas as suas condições".

Vamos à prática?!

A parte de criar um projeto não será abordada neste artigo. Neste exemplo usarei uma aplicação Windows Forms e a linguagem C#, mas é claro que poderá ser utilizado em qualquer tipo de aplicação e linguagem fazendo algumas adaptações conforme sua escolha. Criaremos o layout conforme a figura 1.

Figura 1. Criando layout do formulário.


No evento Click do botão btnVerificar inclua o código conforme listagem 1.

private void btnVerificar_Click(object sender, EventArgs e)

{

//Se os campos informados estão no formato incorreto

if (!ValidarCampos())

{

//Exibe uma mensagem informando o campo com formato inválido

MessageBox.Show(mensagem, "ATENÇÃO", MessageBoxButtons.OK, MessageBoxIcon.Warning);

}

}

/// <summary>

/// Validar formatos dos campos

/// </summary>

/// <returns>True se o campo está com formato correto e false se está incorreto</returns>

private bool ValidarCampos()

{

bool formatoCorreto = true;

//Se o txtEmail.Text não estiver vazio

if (txtEmail.Text != string.Empty)

{

//Se o formato de email estiver incorreto

if (!IsValidEmail(txtEmail.Text))

{

formatoCorreto = false;

mensagem = "O e-mail informado é inválido. Por favor verifique.";

txtEmail.Focus();

return formatoCorreto;

}

}

//Se o txtCep.Text não estiver vazio

if (txtCep.Text != string.Empty)

{

//Se o formato de cep estiver incorreto

if (!ValidaCep(txtCep.Text))

{

formatoCorreto = false;

mensagem = "O CEP informado é inválido. Por favor verifique.";

txtCep.Focus();

return formatoCorreto;

}

}

return formatoCorreto;

}

/// <summary>

/// Validar o formato do CEP

/// </summary>

/// <param name="cep">CEP informado pelo usuário</param>

/// <returns>True se o formato do cep estiver correto e false se está incorreto</returns>

private bool ValidaCep(string cep)

{

//Se a quantidade de dígitos do cep for igual a 8

if (cep.Length == 8)

{

//a variável cep recebe os cinco primeiros dígitos + - + três últimos dígitos ex: 09999-999

cep = cep.Substring(0, 5) + "-" + cep.Substring(5, 3);

//txtCep.Text recebe o valor da variável cep

txtCep.Text = cep;

}

//retorna true ou false

return System.Text.RegularExpressions.Regex.IsMatch(cep, ("[0-9]{5}-[0-9]{3}"));

}

/// <summary>

/// Validar o formato do e-mail

/// </summary>

/// <param name="email">E-mail informado pelo usuário</param>

/// <returns>True se o formato do e-mail estiver correto e false se está incorreto</returns>

private bool IsValidEmail(string email)

{

//retorna true ou false

return System.Text.RegularExpressions.Regex.IsMatch(email, ("(?<user>[^@]+)@(?<host>.+)"));

}

}

Listagem 1. Criando codificação do botão btnVerificar.

Ao executar o código e informar dados no formato inválido (figura 2) é exibida as mensagens (figura 3 e 4) conforme o formato do campo informado pelo usuário incorretamente.

Figura 2. Informando formatos inválidos de e-mail e cep.

Figura 3. Exibindo mensagem do e-mail com formato inválido.

Figura 4. Exibindo mensagem do cep com formato inválido.

Explicando sobre as expressões regulares que estão no método acima:

1. [0-9]{5}-[0-9]{3}

a. [0-9] – é uma lista de itens permitidos. Nesse caso de números entre 0 até 9

b. {5} – neste caso especifica a quantidade de itens. Neste caso irá aparecer 5 ocorrências.

2. (?<user>[^@]+)@(?<host>.+)

a. ( ) – definem um grupo

b. ? – opcional. Ocorre 0 ou 1 vez.

c. <user> - nome usuário

d. [^@] – lista negada. Neste caso pode ocorrer de tudo exceto o “@”.

e. + - mais. Tem que ter. Ocorre 1 ou mais vezes. Neste caso vai ter que existir 0 segundo “@” da expressão acima.

f. <host> - provedor do email

g. . – casa com qualquer coisa. Por exemplo .com

Espero que tenham gostado e até o próximo artigo...

Fernanda Sallai

Fernanda Sallai - Bacharel em Sistemas de Informação na FICS - Faculdades Integradas Campos Salles, reside em São Paulo - SP, atua no desenvolvimento de aplicações Web / Windows Forms e escreve periodicamente em seu blog www.fernandasallai.com.