VitorLuizC / brazilian-values

🇧🇷 Funções de formatação, conversão e validação para valores, documentos e outras unidades usadas no Brasil. Como CEP, CNPJ, CPF, BRL (R$), datas, números etc.
MIT License
541 stars 39 forks source link

Email #35

Closed giulianon closed 4 years ago

giulianon commented 4 years ago

Inclui a função de validação de email que ai o pacote fica completo :)

const validaEmail = function (email) { const re = /^(([^>()[\]\\.,;:\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 re.test(email) }

VitorLuizC commented 4 years ago

Acredito que uma função de validação de e-mail ia ser bastante útil, mas ia fugir do propósito da biblioteca que é fornecer validadores, formatadores e conversores para valores, documentos e unidades de medida brasileiras.

E tem alguns agravantes quando se tratam de funções de validação de e-mail.

  1. Expressões de RegExp geralmente não cobrem todos os formatos de e-mail (RFC5322).
  2. Expressões longas de RegExp podem conter falhas de segurança (ReDoS).
  3. Implementações diferentes de RegExp tendem a ser longas e complexas.
    • Estou escrevendo uma biblioteca justamente para validar e-mails sem RegExp e me baseado na especificação mais atual de e-mails e mesmo incompleta (tenho uns 30% dela pronta) já tem quase o mesmo tamanho do brazilian-values.

Por essas razões eu escolhi não implementar validação e formatação de e-mails dentro do brazilian-values.