NSString+Phone.m 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. //
  2. // NSString+Phone.m
  3. // BuguLive
  4. //
  5. // Created by GuoMs on 16/8/31.
  6. // Copyright © 2016年 xfg. All rights reserved.
  7. //
  8. #import "NSString+Phone.h"
  9. #import "sys/utsname.h"
  10. @implementation NSString (Phone)
  11. + (NSString *)PhoneType
  12. {
  13. struct utsname systemInfo;
  14. uname(&systemInfo);
  15. NSString *platform = [NSString stringWithCString:systemInfo.machine encoding:NSASCIIStringEncoding];
  16. if ([platform isEqualToString:@"iPhone1,1"]) return @"iPhone 2";
  17. if ([platform isEqualToString:@"iPhone1,2"]) return @"iPhone 3";
  18. if ([platform isEqualToString:@"iPhone2,1"]) return @"iPhone 3";
  19. if ([platform isEqualToString:@"iPhone3,1"]) return @"iPhone 4";
  20. if ([platform isEqualToString:@"iPhone3,2"]) return @"iPhone 4";
  21. if ([platform isEqualToString:@"iPhone3,3"]) return @"iPhone 4";
  22. if ([platform isEqualToString:@"iPhone4,1"]) return @"iPhone 4";
  23. if ([platform isEqualToString:@"iPhone5,1"]) return @"iPhone 5";
  24. if ([platform isEqualToString:@"iPhone5,2"]) return @"iPhone 5";
  25. if ([platform isEqualToString:@"iPhone5,3"]) return @"iPhone 5";
  26. if ([platform isEqualToString:@"iPhone5,4"]) return @"iPhone 5";
  27. if ([platform isEqualToString:@"iPhone6,1"]) return @"iPhone 5";
  28. if ([platform isEqualToString:@"iPhone6,2"]) return @"iPhone 5";
  29. if ([platform isEqualToString:@"iPhone7,1"]) return @"iPhone 6 Plus";
  30. if ([platform isEqualToString:@"iPhone7,2"]) return @"iPhone 6";
  31. if ([platform isEqualToString:@"iPhone8,1"]) return @"iPhone6s";
  32. if ([platform isEqualToString:@"iPhone8,2"]) return @"iPhone6sPlus";
  33. if ([platform isEqualToString:@"iPhone8,3"]) return @"iPhoneSE";
  34. if ([platform isEqualToString:@"iPhone8,4"]) return @"iPhoneSE";
  35. if ([platform isEqualToString:@"iPhone9,1"]) return @"iPhone7";
  36. if ([platform isEqualToString:@"iPhone9,2"]) return @"iPhone7Plus";
  37. if ([platform isEqualToString:@"iPhone10,1"]) return @"iPhone 8";
  38. if ([platform isEqualToString:@"iPhone10,4"]) return @"iPhone 8";
  39. if ([platform isEqualToString:@"iPhone10,2"]) return @"iPhone 8 Plus";
  40. if ([platform isEqualToString:@"iPhone10,5"]) return @"iPhone 8 Plus";
  41. if ([platform isEqualToString:@"iPhone10,3"]) return @"iPhone X";
  42. if ([platform isEqualToString:@"iPhone10,6"]) return @"iPhone X";
  43. if ([platform isEqualToString:@"iPod1,1"]) return @"iPod Touch 1G";
  44. if ([platform isEqualToString:@"iPod2,1"]) return @"iPod Touch 2G";
  45. if ([platform isEqualToString:@"iPod3,1"]) return @"iPod Touch 3G";
  46. if ([platform isEqualToString:@"iPod4,1"]) return @"iPod Touch 4G";
  47. if ([platform isEqualToString:@"iPod5,1"]) return @"iPod Touch 5G";
  48. if ([platform isEqualToString:@"iPad1,1"]) return @"iPad 1G";
  49. if ([platform isEqualToString:@"iPad2,1"]) return @"iPad 2";
  50. if ([platform isEqualToString:@"iPad2,2"]) return @"iPad 2";
  51. if ([platform isEqualToString:@"iPad2,3"]) return @"iPad 2";
  52. if ([platform isEqualToString:@"iPad2,4"]) return @"iPad 2";
  53. if ([platform isEqualToString:@"iPad2,5"]) return @"iPad Mini 1G";
  54. if ([platform isEqualToString:@"iPad2,6"]) return @"iPad Mini 1G";
  55. if ([platform isEqualToString:@"iPad2,7"]) return @"iPad Mini 1G";
  56. if ([platform isEqualToString:@"iPad3,1"]) return @"iPad 3";
  57. if ([platform isEqualToString:@"iPad3,2"]) return @"iPad 3";
  58. if ([platform isEqualToString:@"iPad3,3"]) return @"iPad 3";
  59. if ([platform isEqualToString:@"iPad3,4"]) return @"iPad 4";
  60. if ([platform isEqualToString:@"iPad3,5"]) return @"iPad 4";
  61. if ([platform isEqualToString:@"iPad3,6"]) return @"iPad 4";
  62. if ([platform isEqualToString:@"iPad4,1"]) return @"iPad Air";
  63. if ([platform isEqualToString:@"iPad4,2"]) return @"iPad Air";
  64. if ([platform isEqualToString:@"iPad4,3"]) return @"iPad Air";
  65. if ([platform isEqualToString:@"iPad4,4"]) return @"iPad Mini 2G";
  66. if ([platform isEqualToString:@"iPad4,5"]) return @"iPad Mini 2G";
  67. if ([platform isEqualToString:@"iPad4,6"]) return @"iPad Mini 2G";
  68. if ([platform isEqualToString:@"i386"]) return @"iPhone Simulator";
  69. if ([platform isEqualToString:@"x86_64"]) return @"iPhone Simulator";
  70. return platform;
  71. }
  72. - (BOOL)matchRegex:(NSString *)regex
  73. {
  74. //SELF MATCHES一定是大写
  75. NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex];
  76. return [predicate evaluateWithObject:self];
  77. }
  78. - (BOOL)isValidateMobile
  79. {
  80. NSString *phoneRegex = @"^1(3[0-9]|4[57]|5[0-35-9]|(7[0[059]|6|7|8])|8[0-9])\\d{8}$";
  81. return [self matchRegex:phoneRegex];
  82. }
  83. @end