iphone - 在 iPhone 中验证电子邮件

标签 iphone ios xcode

我实现了以下代码。它接受任何类型的邮件 ID。示例:abc@xyz.com。但我想接受完美的邮件 ID。例如:abc@gmail.com、abc@yahoo.com。谁能指导如何做到这一点。

- (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 [emailTest evaluateWithObject:candidate];
}

提前致谢

最佳答案

试试这段代码:

- (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]; 

    BOOL result = [emailTest evaluateWithObject:candidate];
    if(result)
    {
        NSSet *domains= [NSSet setWithObjects:@"yahoo.com",@"yahoo.co.in",@"yahoo.co.au",@"yahoo.co.nz",@"gmail.com",@"rediffmail.com",.........., nil];
        NSArray *arrayObjects = [domains allObjects];
        BOOL results = NO;
              for(int i = 0;i<[arrayObjects count];i++)
              {
                  if([emailTest rangeOfString:[arrayObjects objectAtIndex:i]].location != NSNotFound)
                  {
                      results = YES;
                      break;
                  }
              }
          return results;
    }
    else
    {
        return NO;
    } 
    return [emailTest evaluateWithObject:candidate];
}

希望一切都好

如果您需要更多帮助,请告诉我。

关于iphone - 在 iPhone 中验证电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10188698/

相关文章:

ios - 是否可以编译由于 Xcode 中的编译器预处理器宏而更改的文件?

iphone - 如何确定 NSURLConnection 是否为 :sendSynchronousRequest is returning cached data or not

ios - UITextField becomeFirstReponder 不工作

ios - 核心数据、并发和GCD

XCode Git Head 分离

ios - 从 podspec 向 Xcode 项目添加运行脚本构建阶段

iphone - 如何更改 iPhone 上按钮的默认颜色?

ios - 我需要在发布应用程序之前禁用 NSLog 吗?

ios - 纵向主表中的 iPad Split View作为默认 swift

android - 检测来自移动应用程序的 http 请求