Tal y como tienes ahora mismo el regex del email, no acepta este tipo de emails (debería):
Pero estos si los acepta (no debería):
Lo mismo con el resto de caracteres especiales válidos para un email, no los acepta según el orden en el que estén.
He optimizado bastante el regex del email, mira a ver si puedes usarlo en python:
La parte local cumple todos estos requisitos:
PD: también la detección de 2 puntos en la parte local: "a.b.c@hotmail.com"
Lo de sólo letras inglesas me lo he saltado porque juraría haber visto emails con la C trencada "Ç" y digo yo que los chinos, egipcios, etc... no usarán letras inglesas para sus emails.
La parte del dominio no la he exprimido del todo, aún tengo que informarme sobre los detalles, pero acepta por ejemplo "user@blabla.com.edu" y "user@blabla.museum", así que por el momento funciona genial el regex.
También falta limitar el regex a cadenas de menos de 254 caracteres según el límite válido para la longitud de un email.
He actualizado el RegEx para que solo encuentre cadenas de menos de hasta 254 caracteres.
Un saludo!
Código [Seleccionar]
"elektro69#@maniac.com"
Pero estos si los acepta (no debería):
Código [Seleccionar]
"..elektro..@maniac.com"
"""""""elektro@maniac.com"
Lo mismo con el resto de caracteres especiales válidos para un email, no los acepta según el orden en el que estén.
He optimizado bastante el regex del email, mira a ver si puedes usarlo en python:
Código [Seleccionar]
"^(?=.{1,254}$)[^\.]([\w-\!\#\$\%\&\'\*\+\-\/\=\`\{\|\}\~\?\^]+)([\.]{0,1})([\w-\!\#\$\%\&\'\*\+\-\/\=\`\{\|\}\~\?\^]+)[^\.]@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,6}|[0-9]{1,3})(\]?)$"
La parte local cumple todos estos requisitos:
CitarThe local-part of the e-mail address may use any of these ASCII characters:
Uppercase and lowercase English letters (a-z, A-Z)
Digits 0 to 9
Characters ! # $ % & ' * + - / = ? ^ _ ` { | } ~
Character . (dot, period, full stop) provided that it is not the first or last character, and provided also that it does not appear two or more times consecutively.
PD: también la detección de 2 puntos en la parte local: "a.b.c@hotmail.com"
Lo de sólo letras inglesas me lo he saltado porque juraría haber visto emails con la C trencada "Ç" y digo yo que los chinos, egipcios, etc... no usarán letras inglesas para sus emails.
La parte del dominio no la he exprimido del todo, aún tengo que informarme sobre los detalles, pero acepta por ejemplo "user@blabla.com.edu" y "user@blabla.museum", así que por el momento funciona genial el regex.
He actualizado el RegEx para que solo encuentre cadenas de menos de hasta 254 caracteres.
Un saludo!