Validação de e-mail Java usando regex

Validação de e-mail usando expressões regulares é uma tarefa comum que pode ser exigida em qualquer aplicação que busque o endereço de e-mail como informação necessária na etapa de registro. Pode haver mais usecases, mas isso não é ponto de discussão aqui.

Pulemos diretamente para a discussão principal, ou seja, para validar e-mail em Java usando expressões regulares.

Simplest regex para validar e-mail

Regex : ^(.+)@(.+)$

Este é o mais simples e só se preocupa com o símbolo ‘@’. Antes e depois do símbolo ‘@’, pode haver qualquer número de caracteres. Vamos ver um exemplo rápido para ver o que eu quero dizer.

Program Output.

Este padrão está disponível na classe EmailValidator do Common lang. Portanto, se for de sua necessidade, você pode usar diretamente esta classe.

Adicionando Restrições ao Nome do Usuário parte

Regex : ^+@(.+)$

Neste regex, adicionamos algumas restrições na parte de nome de usuário do endereço de e-mail. As restrições em regex acima são:

Vamos testar alguns endereços de email contra regex.

Program Output.

Por favor note que restrição similar você pode aplicar à parte do nome de domínio também. Então a expressão regular ficará assim.

^+@+$

Validação de e-mail Java permitida pela RFC 5322

Regex : ^+@+$

Este exemplo regex usa todos os caracteres permitidos pela RFC 5322, que rege o formato da mensagem de email. Entre os caracteres permitidos estão alguns que apresentam um risco de segurança se passados diretamente da entrada do usuário para uma instrução SQL, como a citação simples (‘) e o caractere pipe (|).

Você deve ter certeza de escapar de caracteres sensíveis ao inserir o endereço de e-mail em uma string passada para outro programa, a fim de evitar falhas de segurança como ataques de injeção SQL.

Program Output.

Regex para restringir pontos de entrada, de fuga ou consecutivos em e-mails

Regex : ^+(?:\\\.+)*@+(?:\\.+)*$

Bambos a parte local e o nome do domínio podem conter um ou mais pontos, mas não podem aparecer dois pontos um ao lado do outro. Além disso, o primeiro e último caracteres na parte local e no nome de domínio não devem ser pontos:

Program Output.

Regex para restringir o número de caracteres no domínio de primeiro nível

Agora vamos modificar o regex de modo que o nome de domínio deve incluir pelo menos um ponto, e que a parte do nome de domínio após o último ponto só pode consistir em letras.

Vamos dizer que os nomes de domínio são como secondlevel.com ou thirdlevel.secondlevel.com. O domínio de primeiro nível (.com nestes exemplos) deve consistir de duas a seis letras apenas.

>

Regex : ^+(?:\\\.+)*@(?:+\.)+{2,6}$

Program Output.

Esta última regex é a minha recomendação para validação simples de e-mail em java. Por favor note que a validação de e-mails em java sem expressão regular pode ser possível, mas não é recomendada. Qualquer lugar que você precise lidar com padrões, expressões regulares são seus amigos.

Por favor sinta-se livre para usar este regex assim como editá-lo de acordo com as necessidades adicionais de sua aplicação.

Aprendizagem Feliz !!

Deixe uma resposta

O seu endereço de email não será publicado.