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

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

步骤是在一个输入框UITextField的右侧建立一个按钮,点击按钮获取通讯录后,点击通讯录获得号码和名字,然后将该值赋值到输入框内,并且判断是否符合格式,

- (NSString *)valiMobile:(NSString *)mobile

{

    if (mobile.length < 11)

    {

        NSLog(@"请输入正确的手机号");

        return NO;

    }else{

        /**

         * 移动号段正则表达式

         */

        NSString *CM_NUM = @"^((13[4-9])|(147)|(15[0-2,7-9])|(178)|(18[2-4,7-8]))\\d{8}|(1705)\\d{7}$";

        /**

         * 联通号段正则表达式

         */

        NSString *CU_NUM = @"^((13[0-2])|(145)|(15[5-6])|(176)|(18[5,6]))\\d{8}|(1709)\\d{7}$";

        /**

         * 电信号段正则表达式

         */

        NSString *CT_NUM = @"^((133)|(153)|(177)|(18[0,1,9]))\\d{8}$";

        NSPredicate *pred1 = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CM_NUM];

        BOOL isMatch1 = [pred1 evaluateWithObject:mobile];

        NSPredicate *pred2 = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CU_NUM];

        BOOL isMatch2 = [pred2 evaluateWithObject:mobile];

        NSPredicate *pred3 = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CT_NUM];

        

        BOOL isMatch3 = [pred3 evaluateWithObject:mobile];

        NSString * str1=@"中国移动";

        NSString * str2=@"中国联通";

        NSString * str3=@"中国电信";

        if (isMatch1 || isMatch2 || isMatch3) {

            if (isMatch1) {

                return str1 ;

            }

            if (isMatch2) {

                 return str2 ;

            }

            if (isMatch3) {

                 return str3 ;

            }

            return nil;

        }else{

            return nil;

        }

    }

    return nil;

}

这样  返回值我没有设置为布尔值,而是一个str的字符串,如果符合语法,返回正确结果,如果没有值,返回空,在输入框的赋值方法下面做相应的代码调整即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值