码迷,mamicode.com
首页 > 移动开发 > 详细

iOS 用正则表达式验证邮箱和手机号

时间:2015-06-30 20:01:41      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:

1.验证邮箱

+ (BOOL)validateEmail:(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];

}

2.验证手机(简单判断)

+ (BOOL)validatePhone:(NSString *)phone {

          NSString *phoneRegex = @"1[3|5|7|8|][0-9]{9}"; NSPredicate *phoneTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", phoneRegex]; return [phoneTest evaluateWithObject:phone];

}

3.验证手机(复杂判断)

//正则判断手机号码格式

    + (BOOL)validatePhone:(NSString *)phone

    {

        /**

         * 手机号码

         * 移动:134[0-8],135,136,137,138,139,150,151,157,158,159,182,187,188

         * 联通:130,131,132,152,155,156,185,186

         * 电信:133,1349,153,180,189

         */

        NSString * MOBILE = @"^1(3[0-9]|5[0-35-9]|8[025-9])\\d{8}$";

        /**

         10         * 中国移动:China Mobile

         11         * 134[0-8],135,136,137,138,139,150,151,157,158,159,182,187,188

         12         */

        NSString * CM = @"^1(34[0-8]|(3[5-9]|5[017-9]|8[278])\\d)\\d{7}$";

        /**

         15         * 中国联通:China Unicom

         16         * 130,131,132,152,155,156,185,186

         17         */

        NSString * CU = @"^1(3[0-2]|5[256]|8[56])\\d{8}$";

        /**

         20         * 中国电信:China Telecom

         21         * 133,1349,153,180,189

         22         */

        NSString * CT = @"^1((33|53|8[09])[0-9]|349)\\d{7}$";

        /**

         25         * 大陆地区固话及小灵通

         26         * 区号:010,020,021,022,023,024,025,027,028,029

         27         * 号码:七位或八位

         28         */

        // NSString * PHS = @"^0(10|2[0-5789]|\\d{3})\\d{7,8}$";

        

        NSPredicate *regextestmobile = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", MOBILE];

        NSPredicate *regextestcm = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CM];

        NSPredicate *regextestcu = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CU];

        NSPredicate *regextestct = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CT];

        

        if (([regextestmobile evaluateWithObject:phone] == YES)

            || ([regextestcm evaluateWithObject:phone] == YES)

            || ([regextestct evaluateWithObject:phone] == YES)

            || ([regextestcu evaluateWithObject:phone] == YES))

        {

            if([regextestcm evaluateWithObject:phone] == YES) {

                NSLog(@"China Mobile");

            } else if([regextestct evaluateWithObject:phone] == YES) {

                NSLog(@"China Telecom");

            } else if ([regextestcu evaluateWithObject:phone] == YES) {

                NSLog(@"China Unicom");

            } else {

                NSLog(@"Unknow");

            }

            

            return YES;

        }

        else 

        {

            return NO;

        }

    }

 

iOS 用正则表达式验证邮箱和手机号

标签:

原文地址:http://www.cnblogs.com/tongyuling/p/4611165.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!