Validar e-mail

Pessoal eu usei as regex pra validar um endereco de e-mail…sofri um poquino com escapamento do ponto, mas o pessoal ajudou ai e nos meus testes deu tudo certo, dai se vc pudesem olhar se a validacao esta certa

[code]import java.util.regex.*;

public class Regex
{
public static void main(String args[])
{

	if(args[0].length() >= 5 && args[0].length() <= 155)
	{
	
		Pattern pegaJava = Pattern.compile("[\ \w\ \.]+@[ \ \w]+\ \.[\ \w \ \.]+");
		Matcher m = pegaJava.matcher(args[0]);
		if(m.matches())	System.out.println("valido");
		
		else System.out.println("invalido");
	}
	else System.out.println("O e-mail deve possuir entre 5 e 155 caracteres");			
}

}
[/code]

  • o espaci entre uma barra envertida e outra eh por causa que o forum corta uma das barras(tirem os espacamentos entre as barras invertidas)

No meu tempo de suporteiro da AT&T eu achava que o seguinte endereço de email era válido:

e!specials%wild_on@hbo-latin.com

Como você só aceita “w” (ou seja, “A-Za-z0-9_”) e “.” então este endereço vai ser rejeitado.

A história do ponto de exclamação é super-antiga: é tão antiga quanto o Unix. Ele era usado em endereços de email quando se usava um protocolo serial chamado UUCP. Você poderia ter um endereço assim, se não me engano:

root@maquina1!maquina2!maquina3!maquina4

onde todos esses pontos de exclamação indicavam qual o caminho que você precisava fazer até chegar à máquina 4, que é onde estava o usuário root. (Como não havia Internet você tinha de saber qual a melhor rota, partindo de uma máquina, para chegar à outra - provavelmente você tinha de telefonar para um monte de gente até conseguir determinar a tal rota.)

Para validar email, vc pode utilizar as classes do Jakarta Commens da Apache, que já vem com este tipo de validação e outras mais.

thingol, nao deu pra te entende nao :frowning:

[quote]endereço de email era válido:

e!specials%wild_on@hbo-latin.com
[/quote]
[color=“darkred”]Na minha minha exprecao esse endereco continua sendo invalido[/color]

resumindo quais sao os caracteres validos, pra dominios Caracteres válidos são [A-Z;0-9] e o hífen.
e pro e-mail ?

[quote=“hrober”][quote]endereço de email era válido:

e!specials%wild_on@hbo-latin.com [/quote]Na minha minha exprecao esse endereco continua sendo invalido[/quote]

E esse é um endereco de e-mail valido - a historinha toda foi pra explicar pq :wink:

para finalizar
caracteres validos em um e-mail:

letras e numeros
. _ ! # %

esses ?

A rigor, lendo-se o RFC 2822 (Internet Message Format), os caracteres válidos para o email, antes do “@”, são:

A-Z, a-z, 0-9, -, .

e os seguintes caracteres:

!#$%&’*±/=?^_`{|}~

mas obviamente isso pode dar um monte de problemas por aí. Fica a seu encargo saber se você aceita emails com “?” (que acho que ninguém usa porque pode dar problemas mil em vários lugares) ou não. Mas com certeza os emails com “_” são perfeitamente aceitáveis.