Imagino que isso não deveria ocorrer, por exemplo:
douglas.@gmail.com.br é aceito.
Imagino que isso não deveria ocorrer, por exemplo:
douglas.@gmail.com.br é aceito.
Douglas, você tem razão!
Repare que na lista de emails que não podem ser reconhecidos, nenhum é semelhante ao seu exemplo. Então tecnicamente, a resposta do instrutor está correta!
Validação de email é uma das expressões mais complexas que vemos por aí, especialmente porque a cada dia vemos novos caracteres sendo permitidos em servidores novos. Porém, vamos incluir o seu caso no grupo de emails recusados e refazer a regex:
//Expressão original:
^([\w-]\.?)+@([\w-]+\.)+([A-Za-z]{2,4})+$Quebrando em partes:
//Endereço:
([\w-]\.?)+
//Domínio:
([\w-]+\.)+([A-Za-z]{2,4})+Como não precisamos mexer na expressão de domínio, vamos deixá-la para lá por hora.
[\w-] e em seguida pode ter um ..., pois antes de qualquer . deve haver ao menos um caractere em [\w-].., pois ele é a parte final opcional da regex.Para começar, vamos definir a regra por extenso.. Isso sempre ajuda a separar os grupos e escrever a regex por partes. Um email deve:
\w representa o conjunto [a-zA-Z0-9_], então [\w-] soma isso ao hifen: [a-zA-Z0-9_-]. Então vamos começar com [a-zA-Z]+.[a-zA-Z]+[.-]?[a-zA-Z]+[.-]?[a-zA-Z0-9][a-zA-Z]+[.-]?[a-zA-Z0-9]([.-]?[a-zA-Z0-9])*[a-zA-Z]+([.-]?[a-zA-Z0-9])*^[a-zA-Z]+([.-]?[a-zA-Z0-9])*@([\w-]+\.)+([A-Za-z]{2,4})+$Vamos validar? Entre na minha regex salva no regex101 e dê uma olhada!
Se precisar de qualquer explicação mais completa, pode dar uma chamada!
Um abraço e bons estudos