今天在測試手機(jī)登錄時谤职,遇到了一個聯(lián)通的號碼,是以175開頭的齐莲,之后用網(wǎng)上查找的判斷電話號碼的正則表達(dá)式來判斷電話號碼,一直不能通過磷箕。之后我在表達(dá)式里面增添了一個條件选酗,之后我測試是通過了。我把我寫的代碼列出來岳枷,有不對請大家指教芒填。謝謝。
+ (BOOL)judgePhoneNum:(NSString *)phoneNum;{
?phoneNum = [phoneNum stringByReplacingOccurrencesOfString:@" " withString:@""];
if (phoneNum.length != 11)
{
return NO;
}else{
/**
* 移動號段正則表達(dá)式
*/
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)通號段正則表達(dá)式
*/
NSString *CU_NUM = @"^((13[0-2])|(145)|(15[5-6])|(175)|(176)|(18[5,6]))\\d{8}|(1709)\\d{7}$";
/**
* 電信號段正則表達(dá)式
*/
NSString *CT_NUM = @"^((133)|(153)|(177)|(18[0,1,9]))\\d{8}$";
NSPredicate *pred1 = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CM_NUM];
BOOL isMatch1 = [pred1 evaluateWithObject:phoneNum];
NSPredicate *pred2 = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CU_NUM];
BOOL isMatch2 = [pred2 evaluateWithObject:phoneNum];
NSPredicate *pred3 = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CT_NUM];
BOOL isMatch3 = [pred3 evaluateWithObject:phoneNum];
if (isMatch1 || isMatch2 || isMatch3) {
return YES;
}else{
return NO;
}
}
}