Jun
03

PHP: Validando e-mail com expressão regular

Autor: Couto
Categoria: Expressões Regulares, PHP |


Para fazer a validação simples em um endereço de e-mail utiliza a seguinte expressão regular(Os escapes duplos são para aspas duplas, use escapes únicos para aspas simples):

^([a-z0-9_]|\\-|\\.)+@(([az0-9_]|\\-)+\\.)+[a-z]{2,4}$

Para chamar esse código você deve usar o eregi(). O ereg() não funcionará porque a pesquisa precisa ser sem distinção entre maiúsculas e minúsculas. Então, utilize a função da seguinte maneira:

if(!eregi(“^([a-z0-9_]|\\-|\\.)+@(([az0-9_]|\\-)+\\.)+[a-z]{2,4}$”,$email)){
     die(“E-mail invalido.);
}


A expressao regular anterior eh uma expressao regular de verificação de e-mail padrão, compatível com PHP, mas não eh a maneira mais segura de verificar um endereço de e-mail, ou seja, ela somente verifica se o padrão esta correto. Por exemplo alguém@ninguem.abc seria validado pois esta no formato correto, mesmo que ele não exista efetivamente.

A verificação pelo PHP é interessante para se certificar que o e-mail esta no padrão correto antes de inserir no banco de dados, porem, para uma melhor interface com o usuário, faça também a verificação via JavaScript.

2 Responses to “PHP: Validando e-mail com expressão regular”

  1. Roger Says:

    Me ajudou, ótimo para vaidações de primeiro escalão.

    Só concerte uma coisa:

    if(!eregi(“^([a-z0-9_]|\\-|\\.)+@(([az0-9_]|\\-)+\\.)+[a-z]{2,4}$”,”$email”)){
    die(“E-mail invalido.”);
    }

    no bloco após o arroba incluir um hífem entre o az ficando então a-z, assim a validação aceitará tanto números quantos caracteres na parte de domínio do email, pois antes só estava aceitando números valeu.

  2. parrudinho Says:

    Vlw pela correção fico perfeito

Deixe seu Comentário