自己寫的(NSString)字符串分類分享給大家希望有幫助

源碼擺出來我就沒有上傳github

1.聲明

//// NSString+Iphone.h// 旺旺好房//

// Created by LessYellowFish?on 16/11/15.// Copyright ? 2016年 LessYellowFish. All rights reserved.//

#import<Foundation/Foundation.h>

@interface NSString (Iphone)

/** 判斷手機類型 */

+ (NSString *)iphoneType;

/** 從字符串提取數(shù)字 */

+ (NSString *)extractingNumFormString:(NSString *)string;

/** 判斷是否是非空字符串 */

+ (BOOL)isBlankString:(NSString *)string;

/** 判斷是否是非0非空字符串 */

+ (BOOL)isZeroBlankString:(NSString *)string;

/**

刪除字符串中特定字符

*/

+ (NSString *)stringDeleteString:(NSString *)str;

/**

正則判斷手機號位數(shù)

@param str 帶判斷的手機號

@return BOOL

*/

+ (BOOL)isValidPhoneNumber:(NSString*)str;

/**

正則判斷是否是手機

@param str 帶判斷的手機號

@return BOOL

*/

#warning 殘缺用下面那個吧

+ (BOOL)wl_isMobileNumberClassification:(NSString *)tel;

/**

正則判斷是否手機號(自帶提示框)

@param str 帶判斷的手機號

@return BOOL

*/

+ (BOOL)checkTel:(NSString *)str;

@end

2.實現(xiàn)


#import "NSString+Iphone.h"#import@implementation NSString (Iphone)+ (NSString *)iphoneType { // #import struct utsname systemInfo;


? ? uname(&systemInfo);


? ? NSString *platform = [NSString stringWithCString:systemInfo.machine encoding:NSASCIIStringEncoding];


? ? if ([platform isEqualToString:@"iPhone1,1"]) return @"iPhone 2G";


? ? if ([platform isEqualToString:@"iPhone1,2"]) return @"iPhone 3G";


? ? if ([platform isEqualToString:@"iPhone2,1"]) return @"iPhone 3GS";


? ? if ([platform isEqualToString:@"iPhone3,1"]) return @"iPhone 4";


? ? if ([platform isEqualToString:@"iPhone3,2"]) return @"iPhone 4";


? ? if ([platform isEqualToString:@"iPhone3,3"]) return @"iPhone 4";


? ? if ([platform isEqualToString:@"iPhone4,1"]) return @"iPhone 4S";


? ? if ([platform isEqualToString:@"iPhone5,1"]) return @"iPhone 5";


? ? if ([platform isEqualToString:@"iPhone5,2"]) return @"iPhone 5";


? ? if ([platform isEqualToString:@"iPhone5,3"]) return @"iPhone 5c";


? ? if ([platform isEqualToString:@"iPhone5,4"]) return @"iPhone 5c";


? ? if ([platform isEqualToString:@"iPhone6,1"]) return @"iPhone 5s";


? ? if ([platform isEqualToString:@"iPhone6,2"]) return @"iPhone 5s";


? ? if ([platform isEqualToString:@"iPhone7,1"]) return @"iPhone 6 Plus";


? ? if ([platform isEqualToString:@"iPhone7,2"]) return @"iPhone 6";


? ? if ([platform isEqualToString:@"iPhone8,1"]) return @"iPhone 6s";


? ? if ([platform isEqualToString:@"iPhone8,2"]) return @"iPhone 6s Plus";


? ? if ([platform isEqualToString:@"iPhone8,4"]) return @"iPhone SE";


? ? if ([platform isEqualToString:@"iPhone9,1"]) return @"iPhone 7";


? ? if ([platform isEqualToString:@"iPhone9,2"]) return @"iPhone 7 Plus";


? ? if ([platform isEqualToString:@"iPod1,1"])

? ? ? ? return @"iPod Touch 1G";


? ? if ([platform isEqualToString:@"iPod2,1"])

? ? ? ? return @"iPod Touch 2G";


? ? if ([platform isEqualToString:@"iPod3,1"])

? ? ? ? return @"iPod Touch 3G";


? ? if ([platform isEqualToString:@"iPod4,1"])

? ? ? ? return @"iPod Touch 4G";


? ? if ([platform isEqualToString:@"iPod5,1"])

? ? ? ? return @"iPod Touch 5G";


? ? if ([platform isEqualToString:@"iPad1,1"])

? ? ? ? return @"iPad 1G";


? ? if ([platform isEqualToString:@"iPad2,1"])

? ? ? ? return @"iPad 2";


? ? if ([platform isEqualToString:@"iPad2,2"])

? ? ? ? return @"iPad 2";


? ? if ([platform isEqualToString:@"iPad2,3"])

? ? ? ? return @"iPad 2";


? ? if ([platform isEqualToString:@"iPad2,4"])

? ? ? ? return @"iPad 2";


? ? if ([platform isEqualToString:@"iPad2,5"])

? ? ? ? return @"iPad Mini 1G";


? ? if ([platform isEqualToString:@"iPad2,6"])

? ? ? ? return @"iPad Mini 1G";


? ? if ([platform isEqualToString:@"iPad2,7"])

? ? ? ? return @"iPad Mini 1G";


? ? if ([platform isEqualToString:@"iPad3,1"])

? ? ? ? return @"iPad 3";


? ? if ([platform isEqualToString:@"iPad3,2"])

? ? ? ? return @"iPad 3";


? ? if ([platform isEqualToString:@"iPad3,3"])

? ? ? ? return @"iPad 3";


? ? if ([platform isEqualToString:@"iPad3,4"])

? ? ? ? return @"iPad 4";


? ? if ([platform isEqualToString:@"iPad3,5"])

? ? ? ? return @"iPad 4";


? ? if ([platform isEqualToString:@"iPad3,6"])

? ? ? ? return @"iPad 4";


? ? if ([platform isEqualToString:@"iPad4,1"])

? ? ? ? return @"iPad Air";


? ? if ([platform isEqualToString:@"iPad4,2"])

? ? ? ? return @"iPad Air";


? ? if ([platform isEqualToString:@"iPad4,3"])

? ? ? ? return @"iPad Air";


? ? if ([platform isEqualToString:@"iPad4,4"])

? ? ? ? return @"iPad Mini 2G";


? ? if ([platform isEqualToString:@"iPad4,5"])

? ? ? ? return @"iPad Mini 2G";


? ? if ([platform isEqualToString:@"iPad4,6"])

? ? ? ? return @"iPad Mini 2G";


? ? if ([platform isEqualToString:@"i386"])

? ? ? ? return @"iPhone Simulator";

? ? if ([platform isEqualToString:@"x86_64"])

? ? ? ? return @"iPhone Simulator";


? ? return platform;

}

+ (NSString *)extractingNumFormString:(NSString *)string{

? ? NSString *resualt;

? ? NSCharacterSet* nonDigits =[[NSCharacterSet decimalDigitCharacterSet] invertedSet];

? ? int remainSecond =[[string stringByTrimmingCharactersInSet:nonDigits] intValue];

? ? resualt = [NSString stringWithFormat:@"%d",remainSecond];

? ? return resualt;

}

+ (BOOL)isBlankString:(NSString *)string{

? ? if (string == nil || string == NULL) {

? ? ? ? return YES;

? ? }

? ? if ([string isKindOfClass:[NSNull class]]) {

? ? ? ? return YES;

? ? }

? ? if ([[string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]] length]==0) {

? ? ? ? return YES;

? ? }

? ? return NO;

}

/** 判斷是否是非0非空字符串 */

+ (BOOL)isZeroBlankString:(NSString *)string{

? ? if ([self isBlankString:string]) {

? ? ? ? return YES;

? ? }else if([string isEqualToString:@"0"]){

? ? ? ? return YES;

? ? }

? ? return NO;

}

/** 刪除字符中特定字符串 by super86 */

+ (NSString *)stringDeleteString:(NSString *)str

{

? ? NSMutableString *str1 = [NSMutableString stringWithString:str];

? ? for (int i = 0; i < str1.length; i++) {

? ? ? ? unichar c = [str1 characterAtIndex:i];

? ? ? ? NSRange range = NSMakeRange(i, 1);

? ? ? ? if (c == ',' || c == ' ') {

? ? ? ? ? ? //此處可以是任何字符

? ? ? ? ? ? [str1 deleteCharactersInRange:range];

? ? ? ? ? ? --i;

? ? ? ? }

? ? }

? ? NSString *newstr = [NSString stringWithString:str1];

? ? return newstr;

}

//因為各個運營商開頭號碼不同,這里只匹配11位是比較好的方法

+ (BOOL)isValidPhoneNumber:(NSString*)str {

? ? NSString *regex = @"^[0-9]{11}";

//? ? return [str isValidateByRegex:regex];

? ? NSPredicate *pre = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex];

? ? return [pre evaluateWithObject:str];

}

//或者精確點,但需要根據(jù)運營商更新

+ (BOOL)wl_isMobileNumberClassification:(NSString *)tel {

? ? /**

? ? * 手機號碼

? ? * 移動:134[0-8],135,136,137,138,139,150,151,157,158,159,182,187,188,1705

? ? * 聯(lián)通:130,131,132,152,155,156,185,186,1709

? ? * 電信:133,1349,153,180,189,1700

? ? */


? ? /**

? ? 10? ? ? ? * 中國移動:China Mobile

? ? 11? ? ? ? * 134[0-8],135,136,137,138,139,150,151,157,158,159,182,187,188,1705

? ? 12

? ? */

? ? NSString * CM = @"^1(34[0-8]|(3[5-9]|5[017-9]|8[278])\\\\d|705)\\\\d{7}$";

? ? /**

? ? 15? ? ? ? * 中國聯(lián)通:China Unicom

? ? 16? ? ? ? * 130,131,132,152,155,156,185,186,1709

? ? 17

? ? */

? ? NSString * CU = @"^1((3[0-2]|5[256]|8[56])\\\\d|709)\\\\d{7}$";

? ? /**

? ? 20? ? ? ? * 中國電信:China Telecom

? ? 21? ? ? ? * 133,1349,153,180,189,1700

? ? 22

? ? */

? ? NSString * CT = @"^1((33|53|8[09])\\\\d|349|700)\\\\d{7}$";

? ? /**

? ? 25? ? ? ? * 大陸地區(qū)固話及小靈通

? ? 26? ? ? ? * 區(qū)號:010,020,021,022,023,024,025,027,028,029

? ? 27? ? ? ? * 號碼:七位或八位

? ? 28

? ? */

? ? NSString * PHS = @"^0(10|2[0-5789]|\\\\d{3})\\\\d{7,8}$";


? ? if (([self isValidateByRegex:CM withTel:tel])

? ? ? ? || ([self isValidateByRegex:CU withTel:tel])

? ? ? ? || ([self isValidateByRegex:CT withTel:tel])

? ? ? ? || ([self isValidateByRegex:PHS withTel:tel])) {

? ? ? ? return YES;

? ? }else {

? ? ? ? return NO;

? ? }

}

+ (BOOL)isValidateByRegex:(NSString *)regex withTel:(NSString *)tel{

? ? NSPredicate *pre = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex];

? ? return [pre evaluateWithObject:tel];

}

#pragma mark 正則判斷

+ (BOOL)checkTel:(NSString *)str{

? ? if ([str length] == 0) {

? ? ? ? [LessHttp showWithStr:@"請輸入正確的手機號"];

? ? ? ? return NO;

? ? }

? ? NSString *regex = @"^((13[0-9])|(147)|(15[^4,\\D])|(18[0-9])|(17[0-9]))\\d{8}$";

? ? NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];

? ? BOOL isMatch = [pred evaluateWithObject:str];

? ? if (!isMatch) {

? ? ? ? [LessHttp showWithStr:@"請輸入正確的手機號"];

? ? ? ? return NO;

? ? }

? ? return YES;

}

@end

調用我就不寫了,你們可以試試。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容