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