【问题标题】:Email verifications for iphoneiPhone的电子邮件验证
【发布时间】:2015-03-23 08:22:13
【问题描述】:

如何检查输入的email id是否有效?

比如,我正在获取 a@a.com 的验证代码

我试过这个功能。

- (BOOL)validateEmailWithString:(NSString*)email
{
    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:email];
}

但是如果用户输入a@a.com.com.com.com会怎样

我如何验证这种情况?我很高兴有任何建议。

【问题讨论】:

  • 对于您的正则表达式本身,请尝试 Start -> ([a-zA-Z0-9_\\-\\.!#\\$%&\\'\*/=\\?\\ ^`{\\|}~\\+]+)@((\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9] {1,3}\\.)|(([a-zA-Z0-9\\-]+\\.)+))([a-zA-Z]{2,4}|[0-9 ]{1,3})(\]?)

标签: ios objective-c email-validation


【解决方案1】:

您可能发现了该电子邮件地址正则表达式。这是一个有效的电子邮件地址检查器,包括电子邮件的子域。

所以你的程序可以接受有效的电子邮件地址vrwim@dev.email.com

如果您想将其更改为仅接受非子域电子邮件地址(坏主意,我的学校对所有学生都使用它们),请使用 [A-Z0-9a-z._%+-]+@[A-Za-z0-9-]+\\.[A-Za-z]{2,4}

【讨论】:

    【解决方案2】:

    可可函数。检查一下

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

    【讨论】:

      猜你喜欢
      • 2011-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-29
      • 2011-03-27
      • 2018-07-30
      • 2013-11-05
      相关资源
      最近更新 更多