Analizaremos la siguiente expresión regular para ver de qué forma es posible analizar una dirección de Email para que se ajuste a nuestro parámetro de escritura.
/^[a-z]([\w\.-]*)@[a-z]([\w-][^\._]*)\.([a-z]{2,3}([\.][a-z]{2})*)$/
El primer parámetro que tenemos en la expresión regular es ^[a-z].
El comodín ^ nos indica que éste debe ser el comienzo de la dirección de email ingresada y [a-z] nos indica que debe ser una letra de la "a" a la "z" (siempre en minúsculas).
Segundo parámetro: ([\w\.-]*).
Opcionalmente podrá haber más letras, dígitos, guiones bajos y medios y puntos. El comodín * nos indica que los caracteres precedentes pueden aparecer una vez o más veces pero que en el caso que no aparezcan no podrán haber otros en su lugar. Por ejemplo no podríamos agregar un signo de exclamación (?).
El comodín \w nos indica que pueden agregarse letras, dígitos y guiones bajos. Por último los caracteres \.- indican que puede haber puntos y guiones medios. La barra (\) que antecede al punto es para indicar que éste debe tratarse como un caracter normal, es decir, como un punto y no como un comodín propio de las expresiones regulares. Recordemos que el punto (.) es el comodín por excelencia, ya que nos permite agregar cualquier caracter menos el de nueva línea (\n).
Como tercer parámetro indicamos que debe haber un solo símbolo arroba (@). En este caso una dirección de Email con dos arrobas sería inválida.
El tercer y cuarto parámetro([a-z]([\w-][^\._]*)) analizan lo que sería el nombre del dominio o servidor de la dirección de Email y por lo que a mí respecta puede seguir el mismo patrón que el nombre de usuario, es decir, una letra como primer caracter seguido de más letras, números, guiones medios y en este caso NO podrá haber puntos ya que este símbolo marca el fin del dominio y guiones bajos.
Como quinto parámetro de la expresión tenemos el caracter de puntuación que finaliza el dominio y que indicamos mediante \..
Como último parámetro tenemos ([a-z]{2,3}([\.][a-z]{2})*)$.
Este podríamos descomponerlo en dos. El primero analiza el tipo de dominio (.com, .net, .org, etc) y el segundo la extensión de este dominio (.es, .ar, .mx, etc.).
Para construir este parámetro tuvimos en cuenta que el tipo de dominio puede tener dos o tres letras de la "a" a la "z" y la extensión del dominio solo dos letras.
A través de [a-z]{2,3} indicamos, entonces, que el dominio esté compuesto por dos o tres letras del abecedario en minúsculas. Notemos como se utilizó el comodín {n,m} para indicar cuantas veces puede aparecer el caracter precedente. En este caso n será la menor cantidad de veces y m la mayor.
El segundo conjunto del parámetro (([\.][a-z]{2})*) nos indica que opcionalmente puede aparecer un punto seguido de dos letras (solo 2). Esto, como dijimos, puede o no aparecer en la dirección de Email pero siempre aparecerán tal y como se indicaron, es decir, primero el punto y después las dos letras. En este caso ar será inválido mientras que .ar será válido.
Podemos ver que todo este parámetro está encerrado entre () lo que indica que los caracteres deberán escribirse tal cual se indican, es decir, primero irán las dos o tres letras y luego (si corresponde) el punto y las dos letras de la extensión del dominio.
Por último vemos el comodín $ que indica que este parámetro será el final de la cadena a analizar, por lo que después de éste no podrá haber nada más.
Por último, para lo que no sepan nada sobre expresiones regulares, decimos que todo el cuerpo de la misma está entre barras invertidas (//).
Podemos escribir alguna dirección de Email en el cuadro <TEXTAREA> para ver si se ajusta al parámetro creado en la expresión regular.