Bloqueio de endereço de e-mail com expressão regular não funciona

Olá a todos,

a bloqueio de posts com expressões regulares não está funcionando mais. A Ferramenta de Teste de RegEx está encontrando aquele endereço de e-mail, mas os usuários conseguem publicar endereços de e-mail:

RegEx: (^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$)

Isso é um bug?

Muito obrigado pela ajuda!

Acho que há um problema com essa expressão regular. Parece que ela falhará, a menos que o endereço de e-mail seja postado em sua própria linha no editor. Você pode confirmar isso adicionando algum texto além de um endereço de e-mail ao testar a regex no Discourse. Mesmo apenas adicionar um espaço antes do endereço de e-mail fará com que ela falhe.

Aqui está uma expressão regular que deve funcionar para endereços de e-mail:

\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}\b

Para referência, encontrei essa regex aqui: How to Find or Validate an Email Address.

Obrigado! Isso está funcionando. Agora outro problema: é possível usar essa RegEx apenas para posts públicos? Agora também não é possível enviar endereços de e-mail por mensagens privadas. Esse é um comportamento indesejável.

Não, não é possível aplicar palavras monitoradas apenas a postagens públicas. Com essa expressão regular em vigor, você precisará orientar seus usuários a inserir endereços de e-mail de uma forma que não seja detectada pela RegEx. Talvez adicionar um espaço antes do caractere @ funcione.