.net - online - regular expression replace
Correo electrónico de Regex: ¿Ignora los espacios iniciales y finales? (5)
Estamos utilizando lo siguiente para hacer una validación de correo electrónico en ASP.NET:
/w+([-+.'']/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*
¿Cómo se puede modificar esto para ignorar los espacios iniciales y finales?
El recorte real que manejamos en el código en la devolución de datos, pero el validador se activa como no válido si el usuario tiene un espacio adicional a menudo debido a copiar y pegar.
Agrupe lo que desea en una captura con nombre y luego permita espacios antes y después de la captura
/s*(?<email>/w+([-+.'']/w+)@/w+([-.]/w+)./w+([-.]/w+)*)/s*
Puede colocar /s*
antes y después de su patrón y debería funcionar correctamente.
En el caso de ASP.NET, lo siguiente funciona:
<asp:TextBox runat="server" ID="EmailAddress" />
<asp:RegularExpressionValidator ValidationExpression="/s*/w+([-+.'']/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*/s*" runat="server" ControlToValidate="EmailAddress" Text="*" ErrorMessage="Email is not valid" />
Permite una variedad de correos electrónicos como:
"[email protected]"
" [email protected] "
"[email protected]"
" [email protected] "
etc
Asegúrate de despojar los espacios en blanco de tu código así:
VB Dim Email as string = EmailAddress.Text.Trim()
C # string Email = EmailAddress.Text.Trim();
Simplemente haga el ajuste antes de pasarlo al validador.
Iba a "responder" esto como un simple comentario, pero la respuesta real a su pregunta es que no hay respuesta .
¿Por qué?
Porque cualquier dirección de correo electrónico con espacio o espacios en blanco antes o después de ella, es una dirección de correo electrónico no válida .
Intenta pasar una dirección de correo electrónico con caracteres en blanco alrededor de un control SMPTP, por ejemplo, e intente enviarlo, ¡ fallará !
Todas las direcciones de correo electrónico deben ser validadas desde el punto de vista de esta expresión regular ...
/ w + ([- +. ''] / w +) @ / w + ([-.] / w +) . / w + ([-.] / w +) *
o incluso esto
/.+@.+/
Cualquier otra cosa es una dirección de correo electrónico no válida.
Realmente la forma de hacerlo es TRIM () la cadena antes de pasar a un control de correo electrónico para usarla.
Solo te estoy advirtiendo.