iOS 邮箱验证

来源:互联网 发布:鲁大师 硬件体检 优化 编辑:程序博客网 时间:2024/04/30 14:42

-(BOOL)validateEmail:(NSString*)email

{

   if((0 != [emailrangeOfString:@"@"].length) &&

       (0 != [emailrangeOfString:@"."].length))

    {

       NSCharacterSet* tmpInvalidCharSet = [[NSCharacterSetalphanumericCharacterSet] invertedSet];

       NSMutableCharacterSet* tmpInvalidMutableCharSet = [tmpInvalidCharSetmutableCopy];

        [tmpInvalidMutableCharSetremoveCharactersInString:@"_-"];

        

       /*

         *使用compare option 来设定比较规则,如

         *NSCaseInsensitiveSearch是不区分大小写

         *NSLiteralSearch 进行完全比较,区分大小写

         *NSNumericSearch 只比较定符串的个数,而不比较字符串的字面值

         */

       NSRange range1 = [email rangeOfString:@"@"

                                     options:NSCaseInsensitiveSearch];

        

        //取得用户名部分

       NSString* userNameString = [email substringToIndex:range1.location];

       NSArray* userNameArray   = [userNameString componentsSeparatedByString:@"."];

        

       for(NSString* stringin userNameArray)

        {

           NSRange rangeOfInavlidChars = [string rangeOfCharacterFromSet: tmpInvalidMutableCharSet];

           if(rangeOfInavlidChars.length !=0 || [string isEqualToString:@""])

               return NO;

        }

        

       //取得域名部分

       NSString *domainString = [email substringFromIndex:range1.location+1];

       NSArray *domainArray   = [domainString componentsSeparatedByString:@"."];

        

       for(NSString *stringin domainArray)

        {

           NSRange rangeOfInavlidChars=[string rangeOfCharacterFromSet:tmpInvalidMutableCharSet];

           if(rangeOfInavlidChars.length !=0 || [stringisEqualToString:@""])

               return NO;

        }

        

       return YES;

    }

   else {

       return NO;

    }

}


//利用正则表达式验证

-(BOOL)isValidateEmail:(NSString *)email {

    NSString *emailRegex =@"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";

   NSPredicate *emailTest = [NSPredicatepredicateWithFormat:@"SELF MATCHES %@", emailRegex];

   return [emailTest evaluateWithObject:email];

}


原创粉丝点击