Problema para validar correo
#1

Hola estoy haciendo una serie de comprobaciones para verificar si el correo que ingresa el usuario es como yo deseo pero no consigo lograrlo.

pawn Код:
if (CorreoValido(inputtext))
{
    SendClientMessage(playerid, -1, " El correo ingresado no es valido.");
    return 1;
}

stock CorreoValido(email[])
{
    new len = strlen(email);
    if (len == 0) return true;

    new var_1 = 0;
    new var_2 = 0;
    static const servidores[][] =
    {
        "@outlook.com", "hotmail.com"
    };

    for (new a = 0; a < sizeof(servidores); a++)
    {
        if (strfind(email, servidores[a], true) != -1) var_2 = 1;
    }
    // Hasta aqui me funciona si, el problema lo tengo en el bucle de abajo...
    /*
    if(var_2 == 0) return false; Haciendo esto me verifica si el correo es @outlook.com o hotmail.com
                Yo quiero que verifique tambien si antes del @ lleva 5 caracteres (A-Z, 0-9, - o _)
                Ejemplo: juani@hotmail.com o ju-12@hotmail.com
    }
    */

    if(var_2 == 0)
    {
        for (new i = 0; i < sizeof(len); i++)
        {
            if ((email[i] >= 0 && email[i] <= 9) || (email[i] >= 'A' && email[i] <= 'Z') || (email[i] >= 'a' && email[i] <= 'z')  || (email[i] == '.')  || (email[i] == '-')  || (email[i] == '_') || (email[i] == '@'))
            {
                var_1++;
                if (email[i] == '@') break;
            } else {
                return true; }
        }

        if (var_1 > 5) return false;
    }
    return true;
}
Reply
#2

Puedes usar expresiones regulares.
https://sampforum.blast.hk/showthread.php?tid=526725
Reply
#3

Habia visto el plugin, es mejor utilizar expresiones regulares pero me incomoda tener que utilizar un plugin solo para esto.
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)