如何检查Objective C cocoa中是否存在电子邮件地址

时间:2012-06-17 21:51:59

标签: objective-c email

我有一个简单的问题,那就是如何检查是否存在电子邮件

我在最近的帖子中看到过这段代码:

- (BOOL) NSStringIsValidEmail:(NSString *)checkString{

    BOOL stricterFilter = YES; 
    NSString *stricterFilterString = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";
    NSString *laxString = @".+@.+\\.[A-Za-z]{2}[A-Za-z]*";
    NSString *emailRegex = stricterFilter ? stricterFilterString : laxString;
    NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];
    return [emailTest evaluateWithObject:checkString];
 }

我的问题是,如果BOOL返回YES或NO NSTextField,我该如何返回一个动作?

1 个答案:

答案 0 :(得分:1)

如果电子邮件是否正确,只需标签并将标签文本设置为适当的消息。

每次用户通过实施以下UITextFieldDelegate协议方法在文本字段中键入新字符时,您都可以运行检查例程:

- (BOOL)textField:(UITextField *)textField 
   shouldChangeCharactersInRange:(NSRange)range 
   replacementString:(NSString *)string {

   NSString *newText = [textField.text stringByAppendingString:string];
   if ([self NSStringIsValidEmail:newText]) {
      statusLabel.text = @"Valid.";
   } else {
      statusLabel.text = @"Not a valid email address.";
   }
   return YES;
}