The code I am using I found here: http://iphoneapp-dev.blogspot.com/2010/10/email-validation-in-iphone-application.html-(BOOL)validateEmail:(NSString*)email{ if( (0 != [email rangeOfString:@"@"].length) && (0 != [email rangeOfString:@"."].length) ) { NSMutableCharacterSet *invalidCharSet = [[[[NSCharacterSet alphanumericCharacterSet] invertedSet]mutableCopy]autorelease]; [invalidCharSet removeCharactersInString:@"_-"]; NSRange range1 = [email rangeOfString:@"@" options:NSCaseInsensitiveSearch]; // If username part contains any character other than "." "_" "-" NSString *usernamePart = [email substringToIndex:range1.location]; NSArray *stringsArray1 = [usernamePart componentsSeparatedByString:@"."]; for (NSString *string in stringsArray1) { NSRange rangeOfInavlidChars=[string rangeOfCharacterFromSet: invalidCharSet]; if(rangeOfInavlidChars.length !=0 || [string isEqualToString:@""]) return NO; } NSString *domainPart = [email substringFromIndex:range1.location+1]; NSArray *stringsArray2 = [domainPart componentsSeparatedByString:@"."]; for (NSString *string in stringsArray2) { NSRange rangeOfInavlidChars=[string rangeOfCharacterFromSet:invalidCharSet]; if(rangeOfInavlidChars.length !=0 || [string isEqualToString:@""]) return NO; } return YES; } else // no '@' or '.' present return NO; }There is a thread on Stackoverflow suggesting another validation:
+(BOOL) validateEmail: (NSString *) email { NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}"; NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex]; BOOL isValid = [emailTest evaluateWithObject:email]; return isValid; }</code>