验证邮箱账号的有效性
概述
验证邮箱账号的有效性。自测各类邮箱均可以验证。
通过正则表达式30分钟入门教程来判断。
下文中用到的正则表达式字符串为"^(([a-zA-Z0-9_-]+)|([a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)))@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)+$"
可能我这个正则写的较为复杂,我看了网上一些正则并不能验证通过该邮箱账号630121a01z0.cdb@sina.cn
(笔者以前上学时候的邮箱)。所以才有了该正则。
如果有好的建议,希望及时联系我,万分感谢【抱拳】。
Code
源码下载地址,源码中包含各种字符串(手机号、邮箱、中文名、身份证号等)校验方法
+ (BOOL) checkEmptyString:(NSString *) string {
if (string == nil) return string == nil;
NSString *newStr = [string stringByReplacingOccurrencesOfString:@" " withString:@""];
return [newStr isEqualToString:@""];
}
/**
判断是否是有效的邮箱
@param checkString 邮箱字符串
@return 如果是有效的邮箱,返回`YES` 否则返回`NO`
*/
+ (BOOL)isValidEmail:(NSString *)checkString
{
if ([MMCheckTool checkEmptyString:checkString]) return NO;
NSString *emailRegex = @"^(([a-zA-Z0-9_-]+)|([a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)))@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)+$";
NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];
return [emailTest evaluateWithObject:checkString];
}
Test
//邮箱
{
BOOL a = [MMCheckTool isValidEmail:@"1286090267@qq.com"];
BOOL b = [MMCheckTool isValidEmail:@"m12860gyh@gmail.com"];
BOOL c = [MMCheckTool isValidEmail:@"guoyonghong@jfpal.com"];
BOOL d = [MMCheckTool isValidEmail:@"yunyinga321@gmail.com"];
BOOL e = [MMCheckTool isValidEmail:@"630121a01z0.cdb@sina.com"];
BOOL f = [MMCheckTool isValidEmail:@"630121a01z0.cdb@sina.com.cn"];
BOOL g = [MMCheckTool isValidEmail:@"630121a01z0@sina.com.net"];
BOOL h = [MMCheckTool isValidEmail:@""];
BOOL i = [MMCheckTool isValidEmail:nil];
NSLog(@"邮箱=====》%d%d%d%d%d%d%d%d%d",a,b,c,d,e,f,g,h,i); //打印结果为 111111100
}