iOS开发手机号正则表达式

来源:互联网 发布:广联达软件怎么使用 编辑:程序博客网 时间:2024/05/17 04:59

几乎所有的项目都涉及验证手机号的格式是否正确,这就需要正则表达式来进行判断。

- (BOOL)valiMobile:(NSString *)mobile{    mobile = [mobile stringByReplacingOccurrencesOfString:@" " withString:@""];    if (mobile.length != 11)    {        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];        if (isMatch1 || isMatch2 || isMatch3) {            return YES;        }else{            return NO;        }    }}

包括移动,联通,电信三家的手机号全部可以进行判断。在需要的方法中直接调用即可。

- (void)getCodeAction:(UIButton*)sender {    BOOL isPhone = [self valiMobile:_phoneField.text];    if (isPhone) {        NSLog(@"匹配成功");    } else {        NSLog(@"匹配失败");    }}

我这里是在验证按钮的点击事件中进行调用的。

原创粉丝点击