Saiba aqui diferentes formas de validação de E-MAIL em JavaScript e como aplicá-las em seu código
Validação de E-mail em JavaScript é uma tarefa crucial para garantir a precisão e validade dos dados de contato em seus projetos. Com a crescente demanda por aplicativos e sistemas confiáveis, a validação de E-mail se tornou uma parte fundamental da construção de formulários e sistemas de registro. Descubra as melhores práticas e opções de validação de E-mail em JavaScript para garantir a qualidade e a eficiência de seus projetos.
function validarEmail(email) { let validacaoRegex = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; return validacaoRegex.test(email); } if (validarEmail('teste@teste.com.br')) { console.log("E-mail é válido"); } else { console.log("E-mail não é válido"); }
O regex utilizado acima irá validar a string do e-mail… basicamente ele verifica se o texto corresponde ao formato de um endereço de e-mail válido:
^
início da string(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))
parte do usuário e domínio antes do @.[^<>()[\]\\.,;:\s@\"]+
corresponde a uma ou mais sequências de caracteres que não são “<“, “>”, “(“, “)”, “[“, “]”, “”, “.”, “,”, “;”, “:”, ” “, “@”, ou “(\.[^<>()[\]\\.,;:\s@\"]+)*
corresponde a zero ou mais ocorrências de “.” seguidas de uma ou mais sequências de caracteres que não são “<“, “>”, “(“, “)”, “[“, “]”, “”, “.”, “,”, “;”, “:”, ” “, “@”, ou “\".+\"
corresponde a uma string entre aspas duplas
@
corresponde ao caractere @((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))
corresponde ao domínio do e-mail\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\]
corresponde a um endereço IP (exemplo: [192.168.0.1])([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}
corresponde a um nome de domínio (exemplo: example.com)
$
fim da string
Este padrão de Validação de E-mail em JavaScript regulado é usado para verificar se um endereço de e-mail corresponde ao formato válido, mas não garante que o endereço de e-mail seja realmente válido.
function validarEmail(email) { const atpos = email.indexOf("@"); const dotpos = email.lastIndexOf("."); if (atpos < 1 || dotpos < atpos + 2 || dotpos + 2 >= email.length) { return false; } return true; } if (validarEmail("teste@teste.com.br")) { console.log("E-mail é válido"); } else { console.log("E-mail não é válido"); }
Esta função de validação começa procurando a posição do caractere “@” no endereço de e-mail, armazenando o resultado em “atpos”. Em seguida, procura a posição do último ponto (“.”) no endereço de e-mail, armazenando o resultado em “dotpos”.
Em seguida, a função verifica se as seguintes condições são verdadeiras:
- A posição do “@” é menor que 1
- A posição do ponto é menor que a posição do “@” + 2
- A posição do ponto + 2 é maior ou igual ao comprimento total do endereço de e-mail
Se qualquer uma dessas condições for verdadeira, a função retorna “false”. Caso contrário, a função retorna “true”.
function validarEmail(email) { const parts = email.split("@"); if (parts.length !== 2) { return false; } const domainParts = parts[1].split("."); if (domainParts.length < 2) { return false; } return true; } if (validarEmail("teste@teste.com.br")) { console.log("E-mail é válido"); } else { console.log("E-mail não é válido"); }
A função acima começa dividindo o endereço de e-mail em duas partes ao longo do caractere “@”, armazenando o resultado em “parts”.
Em seguida, a função verifica se o comprimento do array “parts” é igual a 2. Se não for, a função retorna “false”, o que indica que o endereço de e-mail não tem o formato correto.
Se o comprimento do array “parts” for igual a 2, a função divide a segunda parte do endereço de e-mail ao longo do ponto, armazenando o resultado em “domainParts”.
Em seguida essa validação de e-mail em JavaScript verifica se o comprimento do array “domainParts” é menor que 2. Se for, a função retorna “false”, o que indica que o endereço de e-mail não tem o formato correto.
Se nenhuma das verificações acima retornar “false”, a função retorna “true”.
function validarEmail(email) { if (email.includes("@") && email.includes(".")) { return true; } return false; } if (validarEmail("teste@teste.com.br")) { console.log("E-mail é válido"); } else { console.log("E-mail não é válido"); }
Esta última função verifica se o endereço de e-mail contém tanto o caractere “@” quanto o ponto (“.”). Isso é feito usando o método “includes()”.
Se o endereço de e-mail contiver ambos os caracteres, a função retorna “true”, o que indica que o endereço de e-mail tem o formato básico correto. Caso contrário, a função retorna “false”.
Por fim…
Alguns exemplos de como fazer uma função “útils” para seu projeto, podendo assim enriquecer cada vez mais as validações dos seus formulários e trazendo mais confiabilidade nos seus dados.