Ver Mensaje Individual
  #2 (permalink)  
Antiguo 27/12/2010, 23:27
wwwmaster
 
Fecha de Ingreso: noviembre-2002
Ubicación: DF
Mensajes: 1.056
Antigüedad: 22 años
Puntos: 37
Respuesta: Detectar @ y el . en el campo e-mail de un formulario Flash

Yo uso esta funcion:
//--------------------------------
// Funcion generica para validar el email
//--------------------------------
_global.isMail = function(arg) {
// compruebo que no este vacía la cadena exaustivamente
if (arg == "" || arg == null || arg == "null" || arg == undefined || arg == "undefined") {
return false;
//trace("cadena vacía");
// compruebo si hay una arroba y solo una
} else if (arg.indexOf("@") == -1 || arg.indexOf("@") != arg.lastIndexOf("@")) {
return false;
//trace("núm de @ erróneo");
} else {
// dividimos la direccion en usuario y dominio
var partes = arg.split("@");
var usuario = partes[0];
var dominio = partes[1];
// compruebo usuario
if (usuario.length<1) {
return false;
//trace("usuario vacío");
} else {
// compruebo si hay algún carácter raro
var caracteresProhibidos = new Array("º", "ª", "!", "#", "$", "%", "&", "¬", "/", "(", ")", "=", "?", "¿", "¡", ",", ";", ":", "[", "]", "{", "}", "á", "é", "í", "ó", "ú", "Á", "É", "Í", "Ó", "Ú");
var numCaracteresProhibidos = 0;
for (var k = 0; caracteresProhibidos[k]; k++) {
if (usuario.indexOf(caracteresProhibidos[k]) != -1) {
numCaracteresProhibidos++;
}
}
if (numCaracteresProhibidos>0) {
trace("caracteres prohibidos encontrados");
return false;
// compruebo dominio
} else if (dominio.indexOf(".") == -1 || dominio.length<1) {
return false;
//trace("núm de puntos erróneo en dominio");
} else {
var partes_dominio = dominio.split(".");
var extension = partes_dominio[partes_dominio.length-1];
// compruebo que el dominio tenga como mínimo 3 chr antes del punto
if (dominio.length-extension.length<4) {
//trace("dominio menor de 3 chr");
return false;
} else if (extension.length<2 || extension.length>4) {
//trace("longitud de extension errónea");
return false;
} else {
//trace("mail correcto");
return true;
}
}
}
}
};