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