iOS一些常用的工具類

工作中經(jīng)常會用到的一些便捷方法琅轧,收藏以備不時之需。


//獲取當(dāng)前時間戳有兩種方法(以秒為單位)

//獲取當(dāng)前時間戳有兩種方法(以秒為單位)

+(NSString*)getNowTimeTimestampWithNowDate:(NSDate*)nowDate{

? ? NSDateFormatter *formatter = [[NSDateFormatter alloc] init] ;

? ? [formattersetDateStyle:NSDateFormatterMediumStyle];

? ? [formattersetTimeStyle:NSDateFormatterShortStyle];

? ? [formattersetDateFormat:@"YYYY-MM-dd HH:mm:ss"];

? ? NSTimeZone* timeZone = [NSTimeZone timeZoneWithName:@"Asia/BeiJing"];

? ? [formattersetTimeZone:timeZone];

//? ? NSDate *datenow = [NSDate date];//現(xiàn)在時間,你可以輸出來看下是什么格式


? ? NSString *timeSp = [NSString stringWithFormat:@"%ld", (long)[nowDate timeIntervalSince1970]];

//? ? NSLog(@"-------------1111---timeSp:%@",timeSp); //時間戳的值時間戳轉(zhuǎn)時間的方法

? ? returntimeSp;


}




//獲取當(dāng)前的時間

//獲取當(dāng)前的時間

+(NSString*)getCurrentTimesWithNowDate:(NSDate*)nowDate

? ? NSDateFormatter *formatter = [[NSDateFormatter alloc] init];

? ? [formattersetDateFormat:@"YYYY-MM-dd HH:mm:ss"];

//? ? NSDate *datenow = [NSDate date];

? ? ? ? NSString*currentTimeString = [formatterstringFromDate:nowDate];

? ? returncurrentTimeString;

}





//檢查字符非空 nil null @“” <null>

//檢查字符非空 nil null @“” <null>

+(BOOL)judgeBlankString:(NSString*)aStr {

? ? if(!aStr) {

? ? ? ? returnYES;

? ? }

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

? ? ? ? returnYES;

? ? }

? ? if(!aStr.length) {

? ? ? ? returnYES;

? ? }

? ? NSCharacterSet *set = [NSCharacterSet whitespaceAndNewlineCharacterSet];

? ? NSString *trimmedStr = [aStr stringByTrimmingCharactersInSet:set];

? ? if(!trimmedStr.length) {

? ? ? ? returnYES;

? ? }

? ? return NO;

}



//判斷手機(jī)號碼格式是否正確

//判斷手機(jī)號碼格式是否正確

+ (BOOL)judgeMobile:(NSString*)mobile{

? ? mobile = [mobilestringByReplacingOccurrencesOfString:@" " withString:@""];

? ? if(mobile.length!=11)

? ? {

? ? ? ? returnNO;

? ? }else{

? ? ? ? /**

?? ? ? ? * 移動號段正則表達(dá)式

?? ? ? ? */

? ? ? ? NSString *CM_NUM = @"^((13[4-9])|(147)|(15[0-2,7-9])|(178)|(18[2-4,7-8]))\\d{8}|(1705)\\d{7}$";

? ? ? ? /**

?? ? ? ? * 聯(lián)通號段正則表達(dá)式

?? ? ? ? */

? ? ? ? NSString *CU_NUM = @"^((13[0-2])|(145)|(15[5-6])|(176)|(18[5,6]))\\d{8}|(1709)\\d{7}$";

? ? ? ? /**

?? ? ? ? * 電信號段正則表達(dá)式

?? ? ? ? */

? ? ? ? NSString *CT_NUM = @"^((133)|(153)|(177)|(18[0,1,9]))\\d{8}$";

? ? ? ? NSPredicate *pred1 = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CM_NUM];

? ? ? ? BOOLisMatch1 = [pred1evaluateWithObject:mobile];

? ? ? ? NSPredicate *pred2 = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CU_NUM];

? ? ? ? BOOLisMatch2 = [pred2evaluateWithObject:mobile];

? ? ? ? NSPredicate *pred3 = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CT_NUM];

? ? ? ? BOOLisMatch3 = [pred3evaluateWithObject:mobile];


? ? ? ? if(isMatch1 || isMatch2 || isMatch3) {

? ? ? ? ? ? returnYES;

? ? ? ? }else{

? ? ? ? ? ? returnNO;

? ? ? ? }

? ? }

}


/*限制輸入數(shù)字*/

/*限制輸入數(shù)字*/

+ (BOOL)validateNumber:(NSString*)number {

? ? BOOLres =YES;

? ? NSCharacterSet* tmpSet = [NSCharacterSet characterSetWithCharactersInString:@"0123456789"];

? ? inti =0;

? ? while(i < number.length) {

? ? ? ? NSString * string = [number substringWithRange:NSMakeRange(i, 1)];

? ? ? ? NSRangerange = [stringrangeOfCharacterFromSet:tmpSet];

? ? ? ? if(range.length==0) {

? ? ? ? ? ? res =NO;

? ? ? ? ? ? break;

? ? ? ? }

? ? ? ? i++;

? ? }

? ? returnres;

}

//正則判斷全是數(shù)字

//正則判斷全是數(shù)字

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

? ? if(str.length==0) {

? ? ? ? returnNO;

? ? }

? ? NSString*regex =@"[0-9]*";

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

? ? if([predevaluateWithObject:str]) {

? ? ? ? returnYES;

? ? }

? ? return NO;

}

/*過濾所有空格*/

/*過濾所有空格*/

+ (NSString*)stringContainCharactersInSet:(NSString*)str{

? ? NSString *topstr = [str stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];

? ? NSString *endStr = [topstr stringByReplacingOccurrencesOfString:@" " withString:@""];

? ? returnendStr;

}

/*過濾emoji*/

/*過濾emoji*/

+(BOOL)stringContainsEmoji:(NSString*)string

{

? ? // 過濾所有表情。returnValue為NO表示不含有表情怔锌,YES表示含有表情

? ? __blockBOOLreturnValue =NO;

? ? [stringenumerateSubstringsInRange:NSMakeRange(0, [string length]) options:NSStringEnumerationByComposedCharacterSequences usingBlock:^(NSString *substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop) {


? ? ? ? constunicharhs = [substringcharacterAtIndex:0];

? ? ? ? // surrogate pair

? ? ? ? if(0xd800<= hs && hs <=0xdbff) {

? ? ? ? ? ? if(substring.length>1) {

? ? ? ? ? ? ? ? constunicharls = [substringcharacterAtIndex:1];

? ? ? ? ? ? ? ? constintuc = ((hs -0xd800) *0x400) + (ls -0xdc00) +0x10000;

? ? ? ? ? ? ? ? if(0x1d000<= uc && uc <=0x1f77f) {

? ? ? ? ? ? ? ? ? ? returnValue =YES;

? ? ? ? ? ? ? ? }

? ? ? ? ? ? }

? ? ? ? }elseif(substring.length>1) {

? ? ? ? ? ? constunicharls = [substringcharacterAtIndex:1];

? ? ? ? ? ? if(ls ==0x20e3) {

? ? ? ? ? ? ? ? returnValue =YES;

? ? ? ? ? ? }

? ? ? ? }else{

? ? ? ? ? ? // non surrogate

? ? ? ? ? ? if(0x2100<= hs && hs <=0x27ff) {

? ? ? ? ? ? ? ? returnValue =YES;

? ? ? ? ? ? }elseif(0x2B05<= hs && hs <=0x2b07) {

? ? ? ? ? ? ? ? returnValue =YES;

? ? ? ? ? ? }elseif(0x2934<= hs && hs <=0x2935) {

? ? ? ? ? ? ? ? returnValue =YES;

? ? ? ? ? ? }elseif(0x3297<= hs && hs <=0x3299) {

? ? ? ? ? ? ? ? returnValue =YES;

? ? ? ? ? ? }elseif(hs ==0xa9|| hs ==0xae|| hs ==0x303d|| hs ==0x3030|| hs ==0x2b55|| hs ==0x2b1c|| hs ==0x2b1b|| hs ==0x2b50) {

? ? ? ? ? ? ? ? returnValue =YES;

? ? ? ? ? ? }

? ? ? ? }

? ? }];

? ? returnreturnValue;

}

//過濾特殊字符

//過濾特殊字符

+ (NSString*)encodeToPercentEscapeString:(NSString*)input

{

? ? NSString*outputStr = (NSString*)

? ? CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (CFStringRef)input,

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? NULL,

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (CFStringRef)@"!*'();:@&=+$,/?%#[]",

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? kCFStringEncodingUTF8));

? ? returnoutputStr;

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子荣挨,更是在濱河造成了極大的恐慌,老刑警劉巖朴摊,帶你破解...
    沈念sama閱讀 222,104評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件默垄,死亡現(xiàn)場離奇詭異,居然都是意外死亡甚纲,警方通過查閱死者的電腦和手機(jī)口锭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來介杆,“玉大人鹃操,你說我怎么就攤上這事韭寸。” “怎么了荆隘?”我有些...
    開封第一講書人閱讀 168,697評論 0 360
  • 文/不壞的土叔 我叫張陵恩伺,是天一觀的道長。 經(jīng)常有香客問我椰拒,道長莫其,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,836評論 1 298
  • 正文 為了忘掉前任耸三,我火速辦了婚禮乱陡,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘仪壮。我一直安慰自己憨颠,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,851評論 6 397
  • 文/花漫 我一把揭開白布积锅。 她就那樣靜靜地躺著爽彤,像睡著了一般。 火紅的嫁衣襯著肌膚如雪缚陷。 梳的紋絲不亂的頭發(fā)上适篙,一...
    開封第一講書人閱讀 52,441評論 1 310
  • 那天,我揣著相機(jī)與錄音箫爷,去河邊找鬼嚷节。 笑死,一個胖子當(dāng)著我的面吹牛虎锚,可吹牛的內(nèi)容都是我干的硫痰。 我是一名探鬼主播,決...
    沈念sama閱讀 40,992評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼窜护,長吁一口氣:“原來是場噩夢啊……” “哼效斑!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起柱徙,我...
    開封第一講書人閱讀 39,899評論 0 276
  • 序言:老撾萬榮一對情侶失蹤缓屠,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后护侮,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體敌完,經(jīng)...
    沈念sama閱讀 46,457評論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,529評論 3 341
  • 正文 我和宋清朗相戀三年概行,在試婚紗的時候發(fā)現(xiàn)自己被綠了蠢挡。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,664評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖业踏,靈堂內(nèi)的尸體忽然破棺而出禽炬,到底是詐尸還是另有隱情,我是刑警寧澤勤家,帶...
    沈念sama閱讀 36,346評論 5 350
  • 正文 年R本政府宣布腹尖,位于F島的核電站,受9級特大地震影響伐脖,放射性物質(zhì)發(fā)生泄漏热幔。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,025評論 3 334
  • 文/蒙蒙 一讼庇、第九天 我趴在偏房一處隱蔽的房頂上張望绎巨。 院中可真熱鬧,春花似錦蠕啄、人聲如沸场勤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽和媳。三九已至,卻和暖如春哈街,著一層夾襖步出監(jiān)牢的瞬間留瞳,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評論 1 272
  • 我被黑心中介騙來泰國打工骚秦, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留她倘,地道東北人。 一個月前我還...
    沈念sama閱讀 49,081評論 3 377
  • 正文 我出身青樓骤竹,卻偏偏與公主長得像帝牡,于是被迫代替她去往敵國和親往毡。 傳聞我的和親對象是個殘疾皇子蒙揣,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,675評論 2 359