Saturday, December 29, 2007

to verify if an email address is well formed

public boolean testEmail(String email)
    {
        email=email.toLowerCase();
        String charOk="abcdefghijklmnopqrstuvwxyz0123456789_@.";
        boolean test=false;
        if (email.length ()<8){return false;}// Si l'email fait moins de 8 caractéres
        if (email.indexOf('@')<0){return false;}// Si l'email ne contient pas d'@'
        if (email.indexOf('.')<0){return false;}// Si l'email ne contient pas de '.'
        if (((email.indexOf('.', (((email.indexOf('@'))+1)))))==(email.indexOf('@')+1)){return false;}// Si l'email as un '.' apres l'@
        if (((email.indexOf('.', ((( email.indexOf('@'))-1)))))==(email.indexOf('@')-1)){return false;}// Si l'email as un '.' avant l'@
        if ((email.indexOf('.'))==0){return false;}// Si l'email as un '.' au debut
        if ((email.charAt((email.length()-1))=='.')){return false;}// Si l'email a un '.' a la fin
        if ((email.indexOf('@'))==0){return false;}// Si l'email as un '@' au debut
        if ((email.charAt((email.length()-1))=='@')){return false;}// Si l'email a un '@' a la fin
        // Si l'email n'a pas de '.' un peu apres le '@'
        boolean tmp=false;
        for (int i=1;i<(email.length()-(email.indexOf('@')));i++)
        {
            if (email.charAt((email.indexOf('@'))+i)=='.')
            {
                tmp=true;
                i=(email.length());
            }
        }
        if (tmp==false){return false;}
        // Si l'email a plusieurs '@'
        for (int i=0;i<email.length();i++)
        {
            if (email.charAt(i)=='@')
            {
                for (int j=i+1;j<email.length();j++)
                {if (email.charAt(j)=='@'){return false;}}
            }        
        }
        // Si l'email a 2 '.' d'affilé
        for (int i=0;i<(email.length()-1);i++)
        {if ((email.charAt(i)=='.') && (email.charAt(i+1)=='.')){return false;}}
        // Si l'email contient un caractére interdis
        for (int i=0;i<email.length();i++)
        {
            for (int j=0;j<charOk.length();j++)
            {
                if ((email.charAt (i))==(charOk.charAt(j)))
                {
                    test=true;
                    j=(charOk.length());
                }
                else {test=false;}
            }
            if (test==false){return test;}
        }
        return test;                
    }

No comments: