Tuesday, June 14, 2011

Validate a email address in java

public static void main(String[] args) {

  System.out.println(vaidateEmailAddress("exa.mple@gmail.com") );
  System.out.println(vaidateEmailAddress("exa..mple@gmail.com") );

 }


 static boolean vaidateEmailAddress(String email){

  boolean valid = false;

  String domain[] = {"gmail.com" , "yahoo.com", "hotmail.com" };
  String localPart = email.substring(0, email.indexOf('@', 0));
  String domainPart = email.substring( localPart.length() + 1, email.length());

  int noOfAts = 0;

  for(int i = 0 ; i < email.length(); i++){

   if(  email.indexOf('@', i) != -1){
    noOfAts++;
    i = email.indexOf('@', i);
   }
  }

  if(noOfAts > 1 || noOfAts == 0) {
   // if more than one @ symbol appears no point in further checking. Its a invalid email address
   return false;
  }
  else{
   // now that it has been found that there is only one @ symbol lets check the domain 

   for( int i = 0 ; i < domain.length ; i++){
    if( domainPart.equals(domain[i])){
     valid = true;
     // still further processing of the string is needed. Thats why it doesn't return true
    }
   }
  }

  // checks for the presence of invalid characters in the local part

  if(localPart.charAt(0) == '.' || localPart.charAt(localPart.length() -1) == '.'){
   return false;
  }
  else{

   for(int i =0 ; i < email.indexOf('@', 0); i++){

    if(validCharacter(email.charAt(i)) ){
    }
    else if(email.charAt(i)== '.' && email.charAt(i+1)== '.'){
     return false;
    }
    else if(email.charAt(i)=='.'){
    }
    else{
     return false;
    }
   }
  }
  return valid;
 }


 static boolean validCharacter(char c){

  char validSymbols[] = {'!', '#' ,'$' ,'%' ,'&' ,'\'' ,'*' ,'+', '-', '/', '=' ,'?', '^','_','`' ,'{' ,'|' ,'}', '~'}; 

  for(int i =0 ; i < validSymbols.length; i++){
   
   if(validSymbols[i] == c ){
   }
   else{
    if(Character.isLetter(c)){
    }
    else if(Character.isDigit(c)){ 
    }
    else{
     return false;
    }
   }
  }
  return true;
 }
}

No comments:

Post a Comment