Inicio › Foros › Lenguajes de programación, desarrollo, código fuente › Delphi › Comprobar formato de dirección de email en Delphi › Respuesta a: Comprobar formato de dirección de email en Delphi
11/30/2018 a las 09:59
#3315
alonsojpd
Superadministrador
Puedes usar esta función para verificar si el formato de una dirección de email es correcto:
Delphi/Pascal
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
//Comprobar si una dirección de mail //es válida (el formato aaaaa@bbbbb.ccc) function emailValido(const email : string) : boolean; function caracterPermitido(const s : string) : boolean; var i : integer; begin Result := False; //Solo puede tener los siguientes caracteres //tanto en la parte de servidor como de usuario for i := 1 to Length(s) do if not (s[i] in ['a'..'z','A'..'Z','0'..'9','_','-','.']) then exit; Result := true; end; var i, longitudServidor : integer; parteUsuario, parteServidor : string; begin Result := False; i := Pos('@', email); //Debe tener, al menos, un carácter antes de la @ y no //puede tener dos puntos seguidos .. if (i = 0) or (i = 1) or (Pos('..', email) > 0) then exit; parteUsuario := Copy(email, 1, i - 1); parteServidor := Copy(email, i + 1, Length(email)); longitudServidor := Length(parteServidor); //Debe tener un punto y, al menos, 3 caracteres desde la arroba //hasta el final (aaa@servidor.com) if (longitudServidor < 3) or (Pos('.', parteServidor) = 0) or (parteServidor[1] = '.') or (parteServidor[longitudServidor] = '.') or (parteServidor[longitudServidor - 1] = '.') then exit; Result := caracterPermitido(parteUsuario) and caracterPermitido(parteServidor); end; |