Xtrician
Xtrician

Reputation: 504

Ensure User has entered email address string in correct format?

i have a text field in Contact screen and the user need to enter email address to send me message. Whats the best way to ensure the user has entered a valid email address such as:

[email protected] / net / org / co.il
[email protected]
[email protected]

etc..

Thanks

Upvotes: 2

Views: 1575

Answers (3)

Nick
Nick

Reputation: 1204

Swift

extension String {
    func isValidEmail() -> Bool {
        let emailRegEx = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,10}"
        let emailTest = NSPredicate(format:"SELF MATCHES %@", emailRegEx)
        let result = emailTest.evaluateWithObject(self)
        return result
    }
}

"[email protected]".isValidEmail() //true
"jim.com".isValidEmail() // false

Upvotes: 0

Paresh Navadiya
Paresh Navadiya

Reputation: 38239

Use this textField delegate function as this will be called on every text entered:

 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
 {
      NSString *strEnteredText = textField.text;
     if(strEnteredText.length>0) 
     {
       if([self validateEmail:strEnteredText])
       {
          //Valid email 
          //Use UILabel to give message
         // BOOL email = true to know email is valid when submit button tapped
       }
       else
       {
          //Not Valid email
          //Use UILabel to give message
          // BOOl emaiL = false to know email is valid when submit button tapped
        }
     }
 }

Add this method .h file

 - (BOOL) validateEmail: (NSString *) enteredText 
 {
   NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}"; 
   NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex]; 
   return [emailTest evaluateWithObject:enteredText];
 }

Upvotes: 2

Abdullah Md. Zubair
Abdullah Md. Zubair

Reputation: 3324

Try the following:

- (BOOL) validateEmail: (NSString *) candidate {
    NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";
    NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];
//  return 0;
    return [emailTest evaluateWithObject:candidate];
}


-(IBAction)btnTapped:(id)sender{

    if([self validateEmail:[txtEmail text]] ==1)
    {
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Message" message:@"You Enter Correct Email id." delegate:self cancelButtonTitle:nil otherButtonTitles:@"OK", nil];
        [alert show];
        [alert release];

    }
    else{
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Message" message:@"You Enter Incoorect Email id." delegate:self cancelButtonTitle:nil otherButtonTitles:@"OK", nil];
        [alert show];
        [alert release];
    }
}

Upvotes: 5

Related Questions