ios处理判断手机号码的正则表达式,基本下包含全部的手机号段

ios处理判断手机号码的正则表达式,基本上包含全部的手机号段

- (BOOL)checkTel:(NSString *)str

{

    if ([str length] == 0) {

        UIAlertView* alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"data_null_prompt", nil) message:NSLocalizedString(@"tel_no_null", nil) delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];

        [alert show];

        [alert release];

        return NO;

    }

    //1[0-9]{10}

    //^((13[0-9])|(15[^4,\\D])|(18[0,5-9]))\\d{8}$

//    NSString *regex = @"[0-9]{11}";

    NSString *regex = @"^((13[0-9])|(147)|(15[^4,\\D])|(18[0,5-9]))\\d{8}$";

    NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];

    BOOL isMatch = [pred evaluateWithObject:str];

    if (!isMatch) {

        UIAlertView* alert = [[UIAlertView alloc] initWithTitle:@"提示" message:@"请输入正确的手机号码" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];

        [alert show];

        [alert release];

        return NO;

    }

    

    return YES;

}