域名电子邮件验证

我正在开发一个iPhone应用程序,我需要用户在登录时给他的电子邮件地址。

检查电子邮件地址是否有效的最佳方法是什么?


如果对你来说真的很重要,那么你可以尝试通过DNS查找指定域的MX记录。

看到这个答案(Linux)的C代码来做到这一点。


检查电子邮件地址: -

NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+.[A-Za-z]{2,4}";
    NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];
    if( [emailTest evaluateWithObject:email]){
//Valid email
}else{
//Wrong Email id 
}

我们可以查看域名,但我们不能说这是有效的,因为域名不是固定的,例如: - 1)abc@abc.com

2)abc@gmail.com

3)abc@yahoo.com

4)abc@abc.in

我们可以检查特定的域名,因为电子邮件地址包含“gmail.com”或“yahoo.com”

它不能解决,因为域名格式不能解决。

它可能是这样的: -

1)aaa@aaa-a.com

2)aaa@aaa.co.in

3)aaa@hotmail.com

4)aaa@facebook.com


以下是我用于电子邮件验证的内容。

NSString *emailRegex = @"^[_A-Za-z0-9-+]+(.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(.[A-Za-z0-9]+)*(.[A-Za-z]{2,})$";
NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];

if (![emailTest evaluateWithObject:emailTF.text]) {
    // wrong email
} else {
    // right email...
}

编辑1

如果你想检查域名,请按照下面的步骤进行。

NSPredicate *websitePredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",@"^[A-Za-z0-9]+(.[A-Za-z0-9-:;?#_]+)+"];
if ([websitePredicate evaluateWithObject:@"google.com"]) {
    NSLog(@"valid domain");
} else {
    NSLog(@"not valid domain");
}

我希望你正在寻找这个...


编辑2

如果你正在寻找域名的实际验证(&而不是域的格式),那么你应该遵循@trojanfoe的答案

链接地址: http://www.djcxy.com/p/42191.html

上一篇: Domain Name email Validation

下一篇: What are best practices for validating email addresses on iOS 2.0