Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Colaboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #16  
Antiguo 27-03-2008
keyboy keyboy is offline
Miembro
 
Registrado: oct 2004
Posts: 367
Poder: 22
keyboy Va por buen camino
A ver que les parece esta otra aproximación

Código Delphi [-]
function ValidEMail(EMail: String): Boolean;
var
  Parts: TStrings;
  Usuario, Servidor: String;
  I: Integer;

begin
  // Seamos pesimistas
  Result := false;

  // Quitamos espacios a los lados, que si bien son incorrectos, no estorban
  EMail := Trim(EMail);

  // Pero no permitamos espacios intermedios
  if Pos(' ', EMail) <> 0 then
    exit;

  Parts := TStringList.Create;

  try
    // Partamos la cadena tomando la @ como delimitador
    Parts.Delimiter := '@';
    Parts.DelimitedText := EMail;

    // Debe haber dos y sólo dos partes...
    if Parts.Count <> 2 then
      exit;

    Usuario := Parts[0];
    Servidor := Parts[1];

    // ...y ninguna puede estar vacía
    if (Usuario = '') or (Servidor = '') then
      exit;

    // Ahora separemos la parte servidor tomando el . como delimitador
    Parts.Delimiter := '.';
    Parts.DelimitedText := Servidor;

    // Debe haber al menos dos partes...
    if Parts.Count < 2 then
      exit;

    // ...pero ninguna vacía
    for I := 0 to Pred(Parts.Count) do
      if Parts[i] = '' then
        exit;

    Result := true;
  finally
    Parts.Free;
  end;
end;

Como digo, es sólo una aproximación así que no pretende hacer más que esto:

1. Determinar que existe una y sólo una @
2. Que hay algo antes (usuario) y después (servidor) de esa @
3. Que después de la @ hay por lo menos dos partes separadas por puntos
4. Que ninguna de esas partes está vacía.

Esto es, se permiten cosas como

[email protected]

pero no

usuario@servidor
@servidor.com
usuario@@servidor.com
[email protected]
etc.

No valido el punto en la parte de usuario porque, al menos yo, tengo direcciones de correo de la forma

[email protected]

Bye

Última edición por keyboy fecha: 27-03-2008 a las 02:57:30.
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Ejercicio con Posiciones de dígitos gerupc Varios 19 18-08-2007 18:59:40
Problema con ejercicio en Delphi gerupc Varios 5 11-08-2007 21:39:28
ayuda con un ejercicio por favor! Albert0 JAVA 1 19-06-2007 18:29:00
Ejercicio Solarintg Varios 1 02-12-2006 15:48:07
Cómo repercute el ejercicio en el trabajo Al González Debates 11 15-03-2005 12:35:22


La franja horaria es GMT +2. Ahora son las 20:56:58.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi