Expressões Regulares
Para resolver o problema da forma correta, vamos utilizar as expressões regulares.
Primeira solução:
Prevê as formas que o email pode ter de forma discreta:
x@y.z, x@y.w.z, x.y@w.z ou x.y@k.w.z
A expressão regular equivalente seria:
/^([\w]+|[\w]+\.[\w]+)@([\w]+\.[\w]+|[\w]+\.[\w]+\.[\w]+)$/
Segunda solução:
Esta é mais elegante e utiliza o princípio das máquinas finitas:
/^(\.?[\w]+){0,}@(\.?[\w]+){0,}$/
As expressões à direita e à esquerda do sinal característico "@" do formato de email são iguais, e podem ser esquematizadas da seguinte forma:
(\.?[\w]+){0,}
Os parênteses estabelecem um grupo lógico.
(\.?[\w]+){0,}
O ponto (precedido de "\" para especificar que é o caracter em si, e não uma referência simbólica da sintaxe das Expressões Regulares) e seguido do sinal de interrogação significa que ele pode ou não aparecer. Isto porque o primeiro grupo de caracteres do endereço de email não possui um ponto que o preceda.
(\.?[\w]+)
.O símbolo de qualquer letra, seguido do caracter "+" indica que o grupo lógico será uma sequência de caracteres (sem espaços).
(\.?[\w]+)
A expressão completa entre parênteses significa: Um grupo de caracteres sem espaços que pode ou não ser precedido de ponto (".").
(\.?[\w]+){0,}
O complemento {0,} indica o número de ocorrências, no caso 0 ou mais.
(\.?[\w]+){0,}
O complemento {0,} indica o número de ocorrências, no caso 0 ou mais.
Nenhum comentário:
Postar um comentário