国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > iOS > 正文

iOS 正則表達式判斷手機號碼、固話

2020-07-26 02:52:28
字體:
來源:轉載
供稿:網友

話不多說,請看代碼:

{  if (mobileNum.length != 11)  {    return NO;  }  /**   * 手機號碼:    * 13[0-9], 14[5,7], 15[0, 1, 2, 3, 5, 6, 7, 8, 9], 17[6, 7, 8], 18[0-9], 170[0-9]   * 移動號段: 134,135,136,137,138,139,150,151,152,157,158,159,182,183,184,187,188,147,178,1705   * 聯通號段: 130,131,132,155,156,185,186,145,176,1709   * 電信號段: 133,153,180,181,189,177,1700   */  NSString *MOBILE = @"^1(3[0-9]|4[57]|5[0-35-9]|8[0-9]|7[0678])//d{8}$";  /**   * 中國移動:China Mobile   * 134,135,136,137,138,139,150,151,152,157,158,159,182,183,184,187,188,147,178,1705   */  NSString *CM = @"(^1(3[4-9]|4[7]|5[0-27-9]|7[8]|8[2-478])//d{8}$)|(^1705//d{7}$)";  /**   * 中國聯通:China Unicom   * 130,131,132,155,156,185,186,145,176,1709   */  NSString *CU = @"(^1(3[0-2]|4[5]|5[56]|7[6]|8[56])//d{8}$)|(^1709//d{7}$)";  /**   * 中國電信:China Telecom   * 133,153,180,181,189,177,1700   */  NSString *CT = @"(^1(33|53|77|8[019])//d{8}$)|(^1700//d{7}$)";  /**   25     * 大陸地區固話及小靈通   26     * 區號:010,020,021,022,023,024,025,027,028,029   27     * 號碼:七位或八位   28     */  //  NSString * PHS = @"^(0[0-9]{2})//d{8}$|^(0[0-9]{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];  if (([regextestmobile evaluateWithObject:mobileNum] == YES)    || ([regextestcm evaluateWithObject:mobileNum] == YES)    || ([regextestct evaluateWithObject:mobileNum] == YES)    || ([regextestcu evaluateWithObject:mobileNum] == YES))  {    return YES;  }  else  {    return NO;  }}

拓展:

如果只是簡單匹配是否是手機號碼,并不需要上面那么多行代碼,可以簡單寫成這樣:

NSString *MOBILE = @"^1(3[0-9]|4[57]|5[0-35-9]|8[0-9]|7[0678])//d{8}$";NSPredicate *regextestmobile = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", MOBILE];return [regextestmobile evaluateWithObject:mobileNum];

如果你需要匹配是否是 移動/聯通/電信 手機號。

判斷移動手機號就是這樣:

+ (BOOL)isChinaMobile:(NSString *)phoneNum{  NSString *CM = @"(^1(3[4-9]|4[7]|5[0-27-9]|7[8]|8[2-478])//d{8}$)|(^1705//d{7}$)";  NSPredicate *regextestcm = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CM];  return [regextestcm evaluateWithObject:phoneNum];}

同理判斷聯通手機號,只要把我們的正則字符串改成上面判斷聯通手機號的字符串就可以了。判斷哪種就改變正則表達式就可以了。此外,在這個基礎上,我們還可以組合來判斷具體是哪個運營商的手機號,代碼如下:

+ (NSString *)getPhoneNumType:(NSString *)phoneNum{  return [self isChinaMobile:phoneNum]? @"中國移動": ([self isChinaUnicom:phoneNum]? @"中國聯通":([self isChinaTelecom:phoneNum]? @"中國電信": @"未知"));}

以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持武林網!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 惠州市| 太谷县| 鄂州市| 津市市| 沙湾县| 井陉县| 平潭县| 江孜县| 疏附县| 天全县| 周至县| 崇文区| 崇义县| 丽水市| 紫阳县| 日喀则市| 塔城市| 裕民县| 宜春市| 花莲市| 玉环县| 屯门区| 阿拉善盟| 卢氏县| 五寨县| 铜梁县| 曲麻莱县| 柳江县| 咸阳市| 孝昌县| 峨眉山市| 喜德县| 抚远县| 泾川县| 周口市| 瑞昌市| 榆林市| 天气| 绥芬河市| 团风县| 集贤县|