标签:
- (BOOL)isMobileNumber:(NSString *)mobileNum
{
/*
* 手机号码
* 中国移动号段:134、135、136、137、138、139、150、151、152、157、158、159、147、182、183、184、187、188、1705、178
* 中国联通号段:130、131、132、145(145属于联通无线上网卡号段)、155、156、185、186 、176、1709
* 中国电信号段:133 、153 、180 、181 、189、1700、177
*/
/*
* 中国移动:China Mobile
* 134、135、136、137、138、139、150、151、152、157、158、159、147、182、183、184、187、188、1705、178
*/
NSString * CM = @"^1((3[4-9]|47|5[0127-9]|78|8[23478])[0-9]|705)\\d{7}$";
/*
* 中国联通:China Unicom
* 130、131、132、145(145属于联通无线上网卡号段)、155、156、185、186 、176、1709、176
*/
NSString * CU = @"^1((3[0-2]|45|5[56]|76|8[56])[0-9]|709)\\d{7}$";
/*
* 中国电信:China Telecom
* 133 、153 、180 、181 、189、1700、177
*/
NSString * CT = @"^1((33|53|8[019]|77)[0-9]|700)\\d{7}$";
/*
* 大陆地区固话及小灵通
* 区号:0开头 3-5位(西藏部分地区区号为5位) 010(北京)| 020(广州)| 021(上海)| 022(天津)| 023(重庆)| 024(沈阳)| 025(南京)| 027(武汉)| 028(成都)| 029(西安)| 031*(河北)| 035*(山西)| 037*(河南)| 041*(辽宁)| 043*(吉林)| 045*(黑龙江)| 047*(内蒙古)| 051*(江苏)| 053*(山东)| 055*(安徽)| 057*(浙江)| 059*(福建)| 071*(湖北)| 073*(湖南)| 075*(广东)| 077*(广西)| 081*(四川)| 085*(贵州)| 087*(云南)| 089*(西藏)| 091*(陕西)| 093*(甘肃)| 095*(宁夏)| 097*(青海)| 099*(新疆)|
* 号码:七位或八位
* 400号码: 统一的400XXXXXXX,主用途为企业呼叫中心接入码
* 800号码: 以800开头的10位号码,其中前3位800为号码的冠名,第2位段(4-6位)代表区号,第3位段即后4位做为企业代码
*/
NSString * PHS = @"^0\\d{2,4}\\d{7,8}|400\\d{7}|800\\d{7}$";
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 (([regextestcm evaluateWithObject:mobileNum] == YES)
|| ([regextestct evaluateWithObject:mobileNum] == YES)
|| ([regextestcu evaluateWithObject:mobileNum] == YES)
|| ([regextestphs evaluateWithObject:mobileNum] == YES)
) {
return YES;
} else {
return NO;
}
}
标签:
原文地址:http://www.cnblogs.com/Panda-L/p/4603114.html