La Web del Programador: Comunidad de Programadores
 
    Pregunta:  4985 - COMO VALIDAR LA ESTRUCTURA DE UN MAIL
Autor:  Azucena Rodriguez
Estoy diseñando una pagina enla que tendre que leer un mail pero tendra el formato sig.
[email protected]
y tengo que validar que permita poner el punto antes del arroba pero que tambien valide que la posicion de los puntos despues de esta esten correctos.
Encontre una pagina que tiene el sig. codigo en javascript para validar
var emailPat = /^(\"*\"|[A-Za-z\\.]\w*)@(\[\d{1,3}(\.\d{1,3}){3}]|[A-Za-z]\w*(\.[A-Za-z]\w*)+)$/;
var matchArray = emailStr.match(emailPat);
if (matchArray == null)
{
alert("incorrecto. Verifique el ´@´, o espacios en blanco.");
return false;
}
if (!isEmail(emailStr)) {
alert("incorrecto. Verifique el ´@´, o espacios en blanco.");
return false;
}

pero no se como interpretar lo que se asigna a emailpat , si alguien me puede ayudar a hacerlo lo agradeceria , o si conocen otra forma en que pueda validar pues acepto sugerencias

  Respuesta:  alvaro ruiz
Yo tuve el mismo problema hace unos seis meses.Utilice un código parecido al que muestras pero no es standart, con los browsers antiguos no funciona.Despues de darle mil vueltas escribí, yo mismo el de aquí abajo.No es perfecto pero hasta ahora no he encontrado uno mejor y que funcione para todos los browsers.Pruebalo. Espero haberte ayudado.

La variable emailPat, crea la estructura del string que representa la dirección de email. Otros lenguajes tienen la funcion left(), pero que yo sepa javascript no, por eso es bastante engorroso y ademas no es standart.

Cuando llames al evento desde el formulario, no se te olvide definir las variables:emailStr y felehrmeldung

<SCRIPT LANGUAGE="JavaScript">
<!--
function emailCheck (emailStr, fehlermeldung) {
var notallowed = " ;:!$%/()=?*";
if (fehlermeldung == false)
{ var fehlermeldung = emailStr + " ist keine gueltige E-Mail Adresse";}
var pos = emailStr.lastIndexOf("@");
var pos2 = emailStr.lastIndexOf(".");
if ((pos <= 0) || (pos == emailStr.length - 1) ||
(pos2 <= 0) || (pos2 == emailStr.length - 1) || (pos2 <= pos + 2))
{alert(fehlermeldung); return false;}
for (i=0; i < notallowed.length; i++) {
var pos = emailStr.indexOf( notallowed.charAt(i) );
if (pos > -1)
{alert(fehlermeldung); return false;}
}
return true;
}

// -->
</SCRIPT>