【问题标题】:Validate the email address in UITextField in iphone [duplicate]验证 iPhone 中 UITextField 中的电子邮件地址 [重复]
【发布时间】:2012-08-28 20:49:10
【问题描述】:

可能重复:
Ensure User has entered email address string in correct format?

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

如果电子邮件地址有错误,则应显示UIAlertView,表示“输入有效的电子邮件地址”。

【问题讨论】:

    标签: objective-c uitextfield


    【解决方案1】:
    【解决方案2】:

    你可以使用 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
    

    【讨论】:

      【解决方案3】:

      Objective 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;
      }
      

      Swift 风格

      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!
      }
      

      【讨论】:

        猜你喜欢
        • 2010-11-04
        • 1970-01-01
        • 2021-04-03
        • 2013-03-25
        • 2011-05-28
        • 2014-11-29
        • 2011-12-11
        • 2014-10-11
        • 2012-10-08
        相关资源
        最近更新 更多