NSString+RQExtension.m 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232
  1. //
  2. // NSString+ex.m
  3. // test1107
  4. //
  5. // Created by apple on 15/11/7./Users/apple/Desktop/jiaPei/jiaPei/NSString+ex.m
  6. // Copyright (c) 2015年 JCZ. All rights reserved.
  7. //
  8. #import "NSString+RQExtension.h"
  9. #define xmlRetError @"ERROR:not found <ns:return></ns:return>"
  10. @implementation NSString(RQExtension)
  11. -(NSString* )getXlmRet
  12. {
  13. NSMutableString* mstr = [NSMutableString stringWithString:self];
  14. NSRange substr = [mstr rangeOfString:@"<ns:return>"];
  15. NSRange substr2 = [mstr rangeOfString:@"</ns:return>"];
  16. if (substr.location == NSNotFound || substr2.location == NSNotFound) {
  17. return xmlRetError;
  18. }
  19. NSString *result = [mstr substringWithRange:NSMakeRange(substr.location + substr.length, substr2.location - substr.location - substr.length)];
  20. return result;
  21. }
  22. -(NSString*)getCode{
  23. if (![self getXlmRet]) {
  24. return nil;
  25. }
  26. NSDictionary* root = [self jsonObject];
  27. return root[@"code"];
  28. }
  29. -(id)jsonObject
  30. {
  31. NSString* ret = [self getXlmRet];
  32. if (!ret)
  33. {
  34. return nil;
  35. }
  36. //options --dansonpro
  37. NSData* jsonData = [ret dataUsingEncoding:NSUTF8StringEncoding];
  38. NSDictionary* json = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:nil];
  39. return json;
  40. }
  41. - (NSString *)md5Encrypt
  42. {
  43. const char *cStr = [self UTF8String];
  44. unsigned char result[16];
  45. CC_MD5( cStr, (unsigned int)strlen(cStr), result );
  46. NSString* str = [NSString stringWithFormat:@"%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X",
  47. result[0], result[1], result[2], result[3],
  48. result[4], result[5], result[6], result[7],
  49. result[8], result[9], result[10], result[11],
  50. result[12], result[13], result[14], result[15]
  51. ];
  52. str = [self toLower:str];
  53. return str;
  54. }
  55. -(NSString *)toLower:(NSString *)str
  56. {
  57. for (NSInteger i=0; i<str.length; i++) {
  58. if ([str characterAtIndex:i]>='A'&[str characterAtIndex:i]<='Z') {
  59. //A对应ASCII码的65 a对应ASCII码的97
  60. //大写换小写 ASCII编码 --Danson
  61. char temp=[str characterAtIndex:i]+32;
  62. NSRange range=NSMakeRange(i, 1);
  63. str=[str stringByReplacingCharactersInRange:range withString:[NSString stringWithFormat:@"%c",temp]];
  64. }
  65. }
  66. return str;
  67. }
  68. -(NSString *)toHighterWithLower:(NSString *)str
  69. {
  70. for (NSInteger i=0; i<str.length; i++) {
  71. if ([str characterAtIndex:i]>='a'&[str characterAtIndex:i]<='z') {
  72. //A对应ASCII码的65 a对应ASCII码的97
  73. //小写换大写 ASCII编码 --Danson
  74. char temp=[str characterAtIndex:i]-32;
  75. NSRange range=NSMakeRange(i, 1);
  76. str=[str stringByReplacingCharactersInRange:range withString:[NSString stringWithFormat:@"%c",temp]];
  77. }
  78. }
  79. return str;
  80. }
  81. -(CGFloat)heightForWid:(CGFloat)wid Font:(CGFloat)fontSize
  82. {
  83. if (self.length < 1) {
  84. return 20.0;
  85. }
  86. return [self boundingRectWithSize:CGSizeMake(wid, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading attributes:@{NSFontAttributeName: [UIFont scaleSize:fontSize]} context:nil].size.height;
  87. }
  88. -(CGSize)sizeForFont:(CGFloat)fontSize
  89. {
  90. if (self.length < 1) {
  91. return CGSizeMake(20, 20);
  92. }
  93. return [self boundingRectWithSize:CGSizeMake(MAXFLOAT, 20) options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading attributes:@{NSFontAttributeName: [UIFont scaleSize:fontSize]} context:nil].size;
  94. }
  95. -(NSString*)base64
  96. {
  97. NSString* path = [[NSBundle mainBundle] pathForResource:self ofType:nil];
  98. UIImage *_originImage = [UIImage imageNamed:path];
  99. NSData *_data = UIImagePNGRepresentation(_originImage);
  100. NSString *_encodedImageStr = [_data base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];
  101. return _encodedImageStr;
  102. }
  103. /**
  104. Base64字符串转UIImage图片:、
  105. //UIImage图片转成Base64字符串:
  106. UIImage *originImage = [UIImage imageNamed:@"originImage.png"];
  107. NSData *data = UIImageJPEGRepresentation(originImage, 1.0f);
  108. NSString *encodedImageStr = [data base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];
  109. //Base64字符串转UIImage图片:
  110. NSData *decodedImageData = [[NSData alloc]
  111. initWithBase64EncodedString:encodedImageStr options:NSDataBase64DecodingIgnoreUnknownCharacters];
  112. UIImage *decodedImage = [UIImage imageWithData:decodedImageData];
  113. */
  114. -(BOOL)checkPhoneNumInput{
  115. NSString * MOBILE = @"^1(3[0-9]|5[0-35-9]|8[025-9]|70|77)\\d{8}$";
  116. NSString * CM = @"^1(34[0-8]|(3[5-9]|5[017-9]|8[278])\\d)\\d{7}$";
  117. NSString * CU = @"^1(3[0-2]|5[256]|8[56])\\d{8}$";
  118. NSString * CT = @"^1((33|53|8[09])[0-9]|349)\\d{7}$";
  119. // NSString * PHS = @"^0(10|2[0-5789]|\\d{3})\\d{7,8}$";
  120. NSPredicate *regextestmobile = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", MOBILE];
  121. NSPredicate *regextestcm = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CM];
  122. NSPredicate *regextestcu = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CU];
  123. NSPredicate *regextestct = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CT];
  124. BOOL res1 = [regextestmobile evaluateWithObject:self];
  125. BOOL res2 = [regextestcm evaluateWithObject:self];
  126. BOOL res3 = [regextestcu evaluateWithObject:self];
  127. BOOL res4 = [regextestct evaluateWithObject:self];
  128. if (res1 || res2 || res3 || res4 ){
  129. return YES;
  130. }else{
  131. return NO;
  132. }
  133. }
  134. @end
  135. @implementation NSDictionary (Log)
  136. - (NSString *)descriptionWithLocale:(id)locale
  137. {
  138. NSMutableString *str = [NSMutableString string];
  139. [str appendString:@"{\n"];
  140. //遍历字典的所有键值对
  141. [self enumerateKeysAndObjectsUsingBlock:^(id key,id obj, BOOL *stop) {
  142. [str appendFormat:@"\t%@ = %@,\n", key, obj];
  143. }];
  144. [str appendString:@"}"];
  145. //查出最后一个,的范围
  146. NSRange range = [str rangeOfString:@","options:NSBackwardsSearch];
  147. if (range.length) {
  148. // 删掉最后一个,
  149. [str deleteCharactersInRange:range];
  150. }
  151. return str;
  152. }
  153. @end
  154. @implementation NSArray (Log)
  155. - (NSString *)descriptionWithLocale:(id)locale
  156. {
  157. NSMutableString *str = [NSMutableString string];
  158. [str appendString:@"[\n"];
  159. //遍历数组的所有元素
  160. [self enumerateObjectsUsingBlock:^(id obj,NSUInteger idx, BOOL *stop) {
  161. [str appendFormat:@"%@,\n", obj];
  162. }];
  163. [str appendString:@"]"];
  164. //查出最后一个,的范围
  165. NSRange range = [str rangeOfString:@","options:NSBackwardsSearch];
  166. if (range.length) {
  167. // 删掉最后一个,
  168. [str deleteCharactersInRange:range];
  169. }
  170. return str;
  171. }
  172. @end