国产探花免费观看_亚洲丰满少妇自慰呻吟_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]? @"中國電信": @"未知"));}

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 大渡口区| 徐闻县| 武乡县| 库尔勒市| 营口市| 四川省| 绥芬河市| 益阳市| 梅河口市| 齐齐哈尔市| 崇仁县| 庄浪县| 雷州市| 保亭| 文成县| 崇阳县| 新宁县| 鹤庆县| 兴业县| 台前县| 临沂市| 温州市| 搜索| 外汇| 房山区| 壤塘县| 颍上县| 荃湾区| 荆州市| 河曲县| 香格里拉县| 呈贡县| 南靖县| 陇南市| 诏安县| 荆州市| 鄂伦春自治旗| 团风县| 通许县| 承德县| 墨竹工卡县|