| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
JesúsGandia Master


Registrado: 17 Jul 2004Mensajes: 403Ubicación: Gandia, Valencia
|
Publicado: Mie 14 May, 2014 10:19 pm Asunto: Emails invalidos |
|
|
Este post es como consecuencia de este otro post:
https://cppbuilder.es/viewtopic.php?t=12435&highlight=regexpmatch
Esta función hace mas o menos lo mismo y es mas comprensible, pero lo mas importante es que no necesita de:
#include <memory>
#include <pcreposi>
ya que si se incluye en el fichero <memory>
el compilador no hace saltar los posibles Warnings (W8066 Unreachable code)
Esto es un problema porque el compilador no te avisa de estas incidencias que son muy importantes.
| Código: |
//Devuelve true si el email es > 7 y si contiene @ y un PUNTO y no contine caracteres especiales.
bool __fastcall TfV::EmailValido(String email)
{
bool Result = false;
if(email.Length() > 7)//xx@xx.es minimo 8 caracteres
{
if(email.Pos(L"@"))//Si existe una @
{
if(email.Pos(L"."))//Si existe un PUNTO
{
if(email[1] != '-' && email[email.Length()] != '-' && email[1] != '_' && email[email.Length()] != '_')
{//el primer o ultimo caracter no puede ser un GUION INTERMECIO (-)(_)
String K = email;
bool encontrado = false;
unsigned short arroba = 0;
for(int i = 1; i <= K.Length(); i++)
{
if((K[i] < '0' || K[i] > '9') && (K[i] < 'A' || K[i] > 'Z') && (K[i] < 'a' || K[i] > 'z') && K[i] != '@' && K[i] != '.' && K[i] != '-' && K[i] != '_')
{
encontrado = true;//Encontrado un caracter especial no valido
break;
}
else
{
if(K[i] == '@')
arroba++;
}
}
if(!encontrado && arroba == 1)//Posible email correcto
Result = true;
}
else
Result = false;
}
else
Result = false;
}
else
Result = false;
}
else
Result = false;
return Result;
}
//--------------------------------------------------------------------------
|
_________________ Muchos hombres no se equivocan jamás porque no se proponen nada razonable.
Ultima edición por JesúsGandia el Mie 14 May, 2014 10:27 pm, editado 1 vez |
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Vie 16 May, 2014 4:32 pm Asunto: |
|
|
Estupenda función. Me gusta y la voy a usar. No obstante yo le pondría algún control más; por ejemplo: la arroba no puede estar detrás del último punto. No deben valer direcciones como angel.matilla@gamilcom. Tiene un punto y la arroba pero es una dirección que no puede existir. _________________ Un saludo
Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA) |
|
| Volver arriba |
|
 |
|