Bloquear dirección de correo electrónico con expresión regular no funciona

Hola a todos,

el bloqueo de publicaciones con expresiones regulares ya no funciona. La Herramienta de Prueba de RegEx está detectando esa dirección de correo electrónico, pero los usuarios pueden publicar direcciones de correo electrónico:

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

¿Es esto un error?

¡Muchas gracias por su ayuda!

Creo que hay un problema con esa expresión regular. Parece que fallará a menos que la dirección de correo se publique en una línea propia en el editor. Puedes confirmar esto agregando algo de texto que no sea una dirección de correo cuando pruebes la expresión regular en Discourse. Incluso solo agregar un espacio antes de la dirección de correo hará que falle.

Aquí tienes una expresión regular que debería funcionar para direcciones de correo:

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

Como referencia, encontré esa expresión regular aquí: How to Find or Validate an Email Address.

¡Gracias! Eso está funcionando. Ahora otro problema: ¿es posible usar esa expresión regular solo para publicaciones públicas? Ahora tampoco es posible enviar direcciones de correo electrónico a través de mensajes privados. Este es un comportamiento indeseable.

No, no es posible aplicar las palabras vigiladas únicamente a las publicaciones públicas. Con esa expresión regular activa, tendrás que pedir a tus usuarios que introduzcan direcciones de correo electrónico de una forma que no sea detectada por la expresión regular. Quizás algo como añadir un espacio antes del carácter @ podría funcionar.