Quiero construir una expresión regular donde . no está permitido como último y primer carácter de la dirección de correo electrónico (por ejemplo: .abc.@gmail.com no debe aceptarse). Además, tengo otro requisito de que .. No se deben permitir 2 períodos consecutivos en ninguna parte de la dirección de correo electrónico (ejemplo: abc...def@gmail.com ).
La expresión regular que estoy usando actualmente es: let regEx = new RegExp(/^[a-zA-Z0-9+_.-]+@(\[(\d{1,3}\.)(([a-zA-Z\d-]+\.)+))([a-zA-Z]{2,15}|\d{1,3})(\]?)/); .
¿Puedo obtener ayuda para modificar la expresión regular anterior para cumplir con mi requisito?
PD: Tengo muy poco conocimiento sobre expresiones regulares.
Agregando sus 2 nuevos requisitos podemos probar:
^(?!.*\.\.)[\p{L}\p{N}\s,_-][\p{L}\p{N}\s,._-]*[\p{L}\p{N}\s,_-]$Explicación:
^ from the start of the email (?!.*\.\.) no two or more consecutive dots [\p{L}\p{N}\s,_-] first character is not dot [\p{L}\p{N}\s,._-]* zero or more allowed characters, including dot [\p{L}\p{N}\s,_-] last character is not dot $ end of the email