Objective c 验证iphone中UITextField中的电子邮件地址

Objective c 验证iphone中UITextField中的电子邮件地址,objective-c,uitextfield,Objective C,Uitextfield,可能重复: 我有一个UITextField,其中我从他们输入的用户那里获取电子邮件地址,我想验证该电子邮件地址,比如我希望它应该检查它是否包含@符号和其他电子邮件字符等符号 如果电子邮件地址中有错误,则应显示一个UIAlertView,该视图将显示“输入有效的电子邮件地址”。添加到项目中并找到以下解决方案 您可以使用NSPredicate执行此操作 //suppose emailID is your entered email address NSString NSString *emai

可能重复:

我有一个
UITextField
,其中我从他们输入的用户那里获取电子邮件地址,我想验证该电子邮件地址,比如我希望它应该检查它是否包含@符号和其他电子邮件字符等符号

如果电子邮件地址中有错误,则应显示一个
UIAlertView
,该视图将显示“输入有效的电子邮件地址”。

添加到项目中并找到以下解决方案


  • 您可以使用NSPredicate执行此操作

    //suppose emailID is your entered email address NSString
    NSString *emailFormat1 = @"[A-Z0-9a-z._]+@[A-Za-z0-9]+\\.[A-Za-z]{2,4}";     
    
    
    NSPredicate *emailTest1 = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailFormat1]; 
    
    
    if ([emailTest1 evaluateWithObject:emailID]||[emailTest2 evaluateWithObject:emailID]) {
       //yes it is valid
    }
    else
        //no it is invalid
    

    客观C风格

    NSString *emailRegEx = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,10}";
    NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegEx];
    
    if ([emailTest evaluateWithObject:email.text] == NO) {
    
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Test!" message:@"Please Enter Valid Email Address." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
        [alert show];
        [alert release];
    
        return;
    }
    
    快速风格

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