直接上代碼:
// 判斷是否是11位手機號碼
- (BOOL)judgePhoneNumber:(NSString *)phoneNum
{
/**
* 移動號段正則表達式
*/
NSString *CM_NUM = @"^((13[4-9])|(147)|(15[0-2,7-9])|(178)|(18[2-4,7-8]))\\d{8}|(1705)\\d{7}$";
/**
* 聯(lián)通號段正則表達式
*/
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}$";
// 一個判斷是否是手機號碼的正則表達式
NSString *pattern = [NSString stringWithFormat:@"(%@)|(%@)|(%@)",CM_NUM,CU_NUM,CT_NUM];
NSRegularExpression *regularExpression = [[NSRegularExpression alloc] initWithPattern:pattern options:NSRegularExpressionCaseInsensitive error:nil];
NSString *mobile = [phoneNum stringByReplacingOccurrencesOfString:@" " withString:@""];
if (mobile.length != 11) {
NO;
}
// 無符號整型數(shù)據(jù)接收匹配的數(shù)據(jù)的數(shù)目
NSUInteger numbersOfMatch = [regularExpression numberOfMatchesInString:mobile options:NSMatchingReportProgress range:NSMakeRange(0, mobile.length)];
if (numbersOfMatch>0) return YES;
return NO;
}