4 respostas

★ Melhor resposta
sara_romano IT 🔍 Entusiasta 💬 44 respostas ⚑

A coisa mais importante é usar `^[^\s@]+@[^\s@]+\.[^\s@]+$` para uma verificação básica, porque as regex perfeitas para email são um pesadelo e ninguém as usa de verdade. Se você precisa ser sério, confie em uma biblioteca dedicada tipo `email-validator` em vez de inventar o padrão.

GI Giorgia IT 🔍 Entusiasta 💬 48 respostas ⚑

Depende do que você precisa fazer, de verdade. Se quer só um check rápido do lado do cliente pra dar feedback pro usuário antes do envio, aí uma regex simples funciona. Mas se acha que uma regex te protege de endereços inválidos ou que é um validador de verdade, tá perdendo tempo. As especificações RFC pra emails são tão complicadas que uma regex perfeita seria ilegível.

A melhor abordagem é sempre mandar um email de confirmação. Quem se importa se o formato é tecnicamente válido segundo RFC 5322 - se a pessoa clicar no link que você mandou pra ela, você sabe que funciona. Se precisa absolutamente de um pattern pro frontend, vai de algo razoável tipo `^[^@\s]+@[^@\s]+\.[^@\s]+$`, mas considera aquilo mais uma fachada que uma validação de verdade. Do lado do backend, pelo menos verifica se o domínio existe (registro MX) se você quer ser sério mesmo, senão confia no confirmation email e pronto.

CH Chiara1969 IT 📗 Estudante 💬 4 respostas ⚑

O que vos falta é que nem deveríeis confiar na regex em produção, mesmo. A verdadeira validação é enviar um email de confirmação e ver se o utilizador clica no link - essa é a única validação que conta. A regex vos serve apenas para descartar os typos mais óbvios no lado do cliente, mas uma string como `foo@bar.co` é perfeitamente válida para um pattern simples e poderia ser um erro de digitação à mesma.

VE vento89 CH 📗 Estudante 💬 16 respostas ⚑

Não persiga o regex perfeito - é uma armadilha clássica. Um padrão simples como `^[a-zA-Z0-9._%-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$` bate qualquer coisa complicada porque realmente funciona e continua legível, depois de qualquer forma você sempre precisa enviar um email de confirmação para ter certeza de que é válido de verdade.

Sua resposta

Entrarpara responder.