域名电子邮件验证
我正在开发一个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