Expressões regulares são uma funcionalidade incrível… É possível interagir com strings e verificar a sua sintaxe…
Normalmente se usa regexp (Regular Expression) pra algumas tarefas simples mas muito úteis: como validar um e-mail, validar uma url, validar a formatação de uma senha que precise ter no minimo 2 letras, 6 números e 7 caracteres… Isso tudo pode e deve ser validado com expressões regulares.
Antes de mostrar o código da validação de e-mail, vou fazer uma breve introdução aos possíveis “formatos” de uma regexp… Nem todas serão usadas, mas é bom que vocês já vejam tudo que é possível fazer:
\s
-> Significa um espaço em branco^
-> Significa o início da string$
-> Significa o fim da string.
-> Significa qualquer caractere(bola|casa)
-> Significa bola ou casa[0-9]
->Significa qualquer número entre zero e nove[a-z]
-> Significa qualquer letra minúscula[A-Z]
-> Significa qualquer letra maiúscula[^a-z]
-> Significa a não ocorrência (falta / proibição) de letras minúsculas. O circunflexo (^) tem significado de ‘não existe’?
-> Significa nenhuma ou uma ocorrência caractere anterior*
-> Significa nenhuma ou várias ocorrências do caractere anterior+
-> Significa - no mínimo - uma ocorrência do caractere anterior{3}
-> Significa exatamente três caracteres{3,}
-> Significa três ou mais caracteres{3,6}
-> Significa entre três e seis caracteres, pode ser 4, 5 também
Mas calma… Onde isso tudo vai?
Vamos a um exemplo simpes… Uma regexp pra verificar um nome de usuario que precise ter no mínimo 5 caracteres e possa ser composto apenas por letras minusculas e números: ^[a-z0-9]{5,}$
Sacaram? O nome desse ‘bloco’ da regexp é chamado pattern, ou padrão. Ao validar uma string você compara um pattern com uma string, e se ela validar, ou seja, cumprir as condições, a string está dentro do formato.
Agora vamos ao código de validação de e-mail, ele é bem simples:
Agora vamos explicar o script… Dividi a pattern em três partes pra ficar mais fácil de entender, usaremos o e-mail contato@thiagobelem.net como exemplo:
^[a-zA-Z0-9\._-]+@ Essa parte é responsável por validar o que vem antes da @.. A conta do e-mail (seria o contato@ do e-mail). Podemos ver que - após o início da string - ela precisa ter pelo menos um caractere e pode ser composta por letras minúsculas, letras maiúsculas, números, ponto, sublinhado (underscore) e hífen. Depois desses caracteres, vem o @.
[a-zA-Z0-9\._-]+. Essa parte é responsável pela sintaxe do domínio (seria o thiagobelem. do e-mail)... Ele deve ser composto por um ou mais letras minúsculas, letras maiúsculas, números, pontos, underscores e hífens. E logo após o domínio, vem um ponto. Repare que o ponto está escapado, ou seja: tem uma barra antes dele. Isso acontece pro que o . faz parte dos 'formatos' usados numa regexp e significa "qualquer caractere". Se no e-mail tivesse '.com.br', o .com faria parte desse bloco e não do próximo.
([a-zA-Z]{2,4})$ Essa é a ultima parte, responsável pela sintaxe do tld (extensão do domínio, que seria o net do e-mail)... Ele deve ter de dois a quatro caracteres, sendo eles letras minúsculas e/ou letras maiúsculas. Ele também é a última coisa do e-mail, então logo após ele vem o fim da string, o fim do e-mail. Com tudo isso o nosso e-mail está validado e você tem um validado de e-mails pronto pra ser usado! E aí? Gostaram? Comentem! ;-)