iOS 의 최신 전화번호 와 휴대 전화 번 호 를 검증 하 는 정규 방법

4405 단어 iOS 개발
얼마 전에 인터넷 에서 연락 처 를 판단 하 는 정규 표현 식 을 찾 아 보 았 는데 블 로 거들 은 핸드폰 만 쓴 것 이 아니 라 전화 만 쓴 것 이 아니 라 핸드폰 번호 구간 이 부족 하 다 는 것 을 발견 했다. 본 고 는 인터넷 의 여러 버 전 을 종합 하고 최신 번호 구간 (예 를 들 어 텔 레 콤 의 177 단) 을 추가 하여 썼 다. 성 과 는?바로 다음 과 같은 내용 입 니 다. 많은 iOS 원숭이 들 의 수 요 를 해결 할 수 있 을 것 같 습 니 다. 업데이트 할 내용 이 있 으 면 저 를 평가 해 주세요.
업데이트: 2017.06 업데이트: 2018.05.23 연결 175, 176 번 추가
+ (BOOL)validateContactNumber:(NSString *)mobileNum{
    
    /**
     *     
     *   :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,175,176,185,186
     17         */
    NSString * CU = @"^1(3[0-2]|5[256]|7[56]|8[56])\\d{8}$";
    
    /**
     20         *     :China Telecom
     21         * 133,1349,153,177,180,189
     22         */
    NSString * CT = @"^1((33|53|77|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];
    NSPredicate *regextestPHS = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", PHS];
    
    if(([regextestmobile evaluateWithObject:mobileNum] == YES)
       || ([regextestcm evaluateWithObject:mobileNum] == YES)
       || ([regextestct evaluateWithObject:mobileNum] == YES)
       || ([regextestcu evaluateWithObject:mobileNum] == YES)
       || ([regextestPHS evaluateWithObject:mobileNum] == YES)){
        return YES;
    }else{
        return NO;
    }
}

주의: 순 전 히 핸드폰 번호 만 검증 하면 아래 이것 을 사용 합 니 다. 위 에 있 는 것 보다 고어 검증 용 어 를 지 웠 습 니 다.
+ (BOOL)validateCellPhoneNumber:(NSString *)cellNum{
    /**
     *     
     *   :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,175,176,185,186
     17         */
    NSString * CU = @"^1(3[0-2]|5[256]|7[56]|8[56])\\d{8}$";
    
    /**
     20         *     :China Telecom
     21         * 133,1349,153,177,180,189
     22         */
    NSString * CT = @"^1((33|53|77|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];
    // NSPredicate *regextestPHS = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", PHS];
    
    if(([regextestmobile evaluateWithObject:cellNum] == YES)
       || ([regextestcm evaluateWithObject:cellNum] == YES)
       || ([regextestct evaluateWithObject:cellNum] == YES)
       || ([regextestcu evaluateWithObject:cellNum] == YES)){
        return YES;
    }else{
        return NO;
    }
}

좋은 웹페이지 즐겨찾기