// // NSString+BMUtils.m // buymore // // Created by yuebin on 2020/6/1. // Copyright © 2020 JLC. All rights reserved. // #import "NSString+BMUtils.h" @implementation NSString (BMUtils) - (NSString *)formatPriceYuan { BOOL haveDot = [self containsString:@"."]; if (haveDot) { NSString *result = [NSString stringWithFormat:@"%.2f", self.floatValue]; if ([result containsString:@".00"]) { result = [result stringByReplacingOccurrencesOfString:@".00" withString:@""]; return result; } if ([result hasSuffix:@"0"]) { result = [result substringToIndex:result.length-1]; return result; } return result; } return self; } - (NSAttributedString *)formatCouponAttributestring { NSString *fixRawPrice = self.formatPriceYuan; NSString *fullString = [NSString stringWithFormat:@"券后价¥%@", fixRawPrice]; NSMutableAttributedString *result = [[NSMutableAttributedString alloc]initWithString:fullString]; [result addAttribute:NSFontAttributeName value:YBFont(11) range:(NSMakeRange(0, 4))]; if ([fullString containsString:@"."]) { NSArray *coms = [fullString componentsSeparatedByString:@"."]; NSString *targetString = [@"." stringByAppendingString:coms.lastObject]; NSRange targetRange = [fullString rangeOfString:targetString]; [result addAttribute:NSFontAttributeName value:YBBoldFont(11) range:targetRange]; } return result; } - (NSAttributedString *)formatNoCouponAttributestring { NSString *fixRawPrice = self.formatPriceYuan; NSString *fullString = [NSString stringWithFormat:@"¥%@", fixRawPrice]; NSMutableAttributedString *result = [[NSMutableAttributedString alloc]initWithString:fullString]; [result addAttribute:NSFontAttributeName value:YBFont(11) range:(NSMakeRange(0, 1))]; if ([fullString containsString:@"."]) { NSArray *coms = [fullString componentsSeparatedByString:@"."]; NSString *targetString = [@"." stringByAppendingString:coms.lastObject]; NSRange targetRange = [fullString rangeOfString:targetString]; [result addAttribute:NSFontAttributeName value:YBBoldFont(11) range:targetRange]; } return result; } - (NSAttributedString *)formatSymbolAndDeleteAttributestring { NSString *fixRawPrice = self.formatPriceYuan; NSString *fullString = [NSString stringWithFormat:@"¥%@", fixRawPrice]; NSMutableAttributedString *result = [[NSMutableAttributedString alloc]initWithString:fullString]; [result addAttribute:NSFontAttributeName value:YBFont(11) range:(NSMakeRange(0, 1))]; if ([fullString containsString:@"."]) { NSArray *coms = [fullString componentsSeparatedByString:@"."]; NSString *targetString = [@"." stringByAppendingString:coms.lastObject]; NSRange targetRange = [fullString rangeOfString:targetString]; [result addAttribute:NSFontAttributeName value:YBBoldFont(11) range:targetRange]; } [result addAttribute:NSStrikethroughStyleAttributeName value:[NSNumber numberWithInteger:NSUnderlinePatternSolid | NSUnderlineStyleSingle] range:NSMakeRange(0, result.length)]; return result; } - (NSAttributedString *)formatDeleteString { NSMutableAttributedString *result = [[NSMutableAttributedString alloc] initWithString:self]; [result addAttribute:NSStrikethroughStyleAttributeName value:[NSNumber numberWithInteger:NSUnderlinePatternSolid | NSUnderlineStyleSingle] range:NSMakeRange(0, self.length)]; return result; } - (NSAttributedString *)zoomWithString:(NSString *)targetStr WithSize:(float)fontSize { NSMutableAttributedString *result = [[NSMutableAttributedString alloc] initWithString:self]; NSRange targetRange = [self rangeOfString:targetStr]; [result addAttribute:NSFontAttributeName value:[UIFont boldSystemFontOfSize:fontSize] range:targetRange]; return result; } - (NSAttributedString *)att_deleteWithString:(NSString *)targetStr { NSMutableAttributedString *result = [[NSMutableAttributedString alloc] initWithString:self]; NSRange targetRange = [self rangeOfString:targetStr]; [result addAttribute:NSStrikethroughStyleAttributeName value:[NSNumber numberWithInteger:NSUnderlinePatternSolid | NSUnderlineStyleSingle] range:targetRange]; return result; } - (NSMutableAttributedString *)att_changeColorAndFontSizeWithString:(NSString *)targetStr WithColor:(nullable UIColor *)fontColor WithFont:(nullable UIFont *)font { NSMutableAttributedString *result = [[NSMutableAttributedString alloc] initWithString:self]; NSRange targetRange = [self rangeOfString:targetStr]; if (fontColor) { [result addAttribute:NSForegroundColorAttributeName value:fontColor range:targetRange]; } if (font) { [result addAttribute:NSFontAttributeName value:font range:targetRange]; } return result; } + (NSAttributedString *)placeholderAttributeSringWithText:(NSString *)text img:(NSString *)imgName { text = [NSString stringWithFormat:@" %@",text]; NSMutableAttributedString *result = [[NSMutableAttributedString alloc] initWithString:text attributes:@{NSForegroundColorAttributeName:HEXCOLOR(0x999999)}]; NSTextAttachment *attachment = [[NSTextAttachment alloc] init]; attachment.image = [UIImage imageNamed:imgName]; attachment.bounds = CGRectMake(0, -2, 15, 15); NSAttributedString *imgPart = [NSAttributedString attributedStringWithAttachment:attachment]; [result insertAttributedString:imgPart atIndex:2]; return result; } + (NSString*)overtime:(NSInteger)sec { NSInteger d = sec/60/60/24; NSInteger h = sec/60/60%24; NSInteger m = sec/60%60; NSInteger s = sec%60; NSString *_dStr = [NSString stringWithFormat:@"%ld天", (long)d]; NSString *_hStr = [NSString stringWithFormat:@"%02ld时", (long)h]; NSString *_mStr = [NSString stringWithFormat:@"%02ld分", (long)m]; NSString *_sStr = [NSString stringWithFormat:@"%02ld秒", (long)s]; NSString *result = [NSString stringWithFormat:@"%@%@%@", _hStr, _mStr, _sStr]; if (d>0) { result = [NSString stringWithFormat:@"%@%@%@%@", _dStr, _hStr, _mStr, _sStr]; } return result; } + (NSArray *)arrOvertime:(NSInteger)sec { NSInteger d = sec/60/60/24; NSInteger h = sec/60/60%24; NSInteger m = sec/60%60; NSInteger s = sec%60; NSString *_dStr = [NSString stringWithFormat:@"%ld", (long)d]; NSString *_hStr = [NSString stringWithFormat:@"%02ld", (long)h]; NSString *_mStr = [NSString stringWithFormat:@"%02ld", (long)m]; NSString *_sStr = [NSString stringWithFormat:@"%02ld", (long)s]; return @[_dStr, _hStr, _mStr, _sStr]; } + (NSString *)timeDayString { NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; formatter.dateFormat = @"yyyyMMdd"; return [formatter stringFromDate:NSDate.date]; } - (BOOL)isValidPhone { NSString *phoneRegex = @"^((13|14|15|16|17|18|19)[0-9])\\d{8}$"; NSPredicate *phoneTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", phoneRegex]; BOOL isValid = [phoneTest evaluateWithObject:self]; return isValid; } + (NSString *)formatTimer:(NSString *)timer { return @""; } - (NSString *)formatUrlString { NSString *noSpaceString = [self stringByReplacingOccurrencesOfString:@" " withString:@""]; return [noSpaceString stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]]; } - (BOOL)versionIsBiggerThan:(NSString *)onlineVersion { NSString *localVersion = self; BOOL isBig = NO; NSArray *localNums = [localVersion componentsSeparatedByString:@"."]; NSArray *onlineNums = [onlineVersion componentsSeparatedByString:@"."]; for (int i=0; i i) { NSInteger eachLocalNum = localNums[i].integerValue; NSInteger eachOnlineNum = onlineNums[i].integerValue; if (eachLocalNum > eachOnlineNum) { isBig = YES; break; }else if (eachLocalNum < eachOnlineNum) { isBig = NO; break; }else { //所在位相等 if (i == localNums.count) { isBig = NO; } continue; } } //在线版本的位数不够 else { isBig = YES; break; } } return isBig; } @end