NSString+Extention.m 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. //
  2. // NSString+Extention.m
  3. // XMFamily
  4. //
  5. // Created by Megatron on 4/24/15.
  6. // Copyright (c) 2015 Megatron. All rights reserved.
  7. //
  8. #import "NSString+Extention.h"
  9. #import "Header.h"
  10. @implementation NSString (Extention)
  11. + (NSString *)getTimeStringWihtNumber:(NSInteger)time {
  12. NSMutableString *result;
  13. if (time < 10) {
  14. result = [NSMutableString stringWithFormat:@"00:0%ld",(long)time];
  15. }
  16. else if (time <= 60) {
  17. result = [NSMutableString stringWithFormat:@"00:%ld",(long)time];
  18. }
  19. else if (time <1000) {
  20. result = [NSMutableString stringWithFormat:@"%ld",(long)time];
  21. [result insertString:@":" atIndex:1];
  22. }
  23. else {
  24. result = [NSMutableString stringWithFormat:@"%ld",(long)time];
  25. [result insertString:@":" atIndex:2];
  26. }
  27. return result;
  28. }
  29. //将十进制转化为二进制,设置返回NSString 长度
  30. + (NSString *)decimalTOBinary:(uint16_t)tmpid backLength:(int)length {
  31. NSString *a = @"";
  32. while (tmpid) {
  33. a = [[NSString stringWithFormat:@"%d",tmpid%2] stringByAppendingString:a];
  34. if (tmpid/2 < 1) {
  35. break;
  36. }
  37. tmpid = tmpid/2 ;
  38. }
  39. if (a.length <= length) {
  40. NSMutableString *b = [[NSMutableString alloc]init];;
  41. for (int i = 0; i < length - a.length; i++) {
  42. [b appendString:@"0"];
  43. }
  44. a = [b stringByAppendingString:a];
  45. }
  46. return a;
  47. }
  48. + (NSString *)getWeekTimeStringWithBinaryString:(int)num {
  49. NSMutableArray *array = [[NSMutableArray alloc] initWithObjects:TS("Monday"),TS("Tuesday"),TS("Wednesday"),TS("Thursday"),TS("Friday"),TS("Saturday"),TS("Sunday"), nil];
  50. NSString *result = @"";
  51. for (int i = 0; i < 7; ++i) {
  52. if ((num & 1 << i) != 0) {
  53. result = [NSString stringWithFormat:@"%@ %@",result,[array objectAtIndex:i]];
  54. }
  55. }
  56. return result;
  57. }
  58. #pragma mark 传入一个整数 转化成天时分秒的形式
  59. + (NSString *)getDHMSStringWithIntNumber:(NSInteger)time {
  60. NSMutableString *result = [[NSMutableString alloc] initWithCapacity:0];
  61. long nDay,nHour,nMinute,nSecond;
  62. nDay = time / (24*60*60);
  63. nHour = (time % (24*60*60)) / (60*60);
  64. nMinute = ((time % (24*60*60)) % (60*60)) / 60;
  65. nSecond = ((time % (24*60*60)) % (60*60)) % 60;
  66. NSString *str;
  67. if (nDay > 0) {
  68. str = [NSString stringWithFormat:@"%ld%@%ld%@%ld%@%ld%@",nDay,TS("day2"),nHour,TS("hour"),nMinute,TS("minute"),nSecond,TS("s")];
  69. }
  70. else if (nHour > 0) {
  71. str = [NSString stringWithFormat:@"%ld%@%ld%@%ld%@",nHour,TS("hour"),nMinute,TS("minute"),nSecond,TS("s")];
  72. }
  73. else if (nMinute > 0) {
  74. str = [NSString stringWithFormat:@"%ld%@%ld%@",nMinute,TS("minute"),nSecond,TS("s")];
  75. }
  76. else if (nSecond > 0) {
  77. str = [NSString stringWithFormat:@"%ld%@",nSecond,TS("s")];
  78. }
  79. if (str == nil) {
  80. str = @"0";
  81. }
  82. return [result stringByAppendingString:str];
  83. }
  84. #pragma mark 字典装json
  85. + (NSString *)dictionaryToJson:(NSDictionary *)dic {
  86. NSError *parseError = nil;
  87. NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dic options:NSJSONWritingPrettyPrinted error:&parseError];
  88. return [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
  89. }
  90. + (NSString *)dictionaryToJsonWithoutWritingPrettyPrinted:(NSDictionary *)dic {
  91. NSError *parseError = nil;
  92. NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dic options:NSJSONWritingPrettyPrinted/*NSJSONWritingPrettyPrinted 这是带换行符\n的*/ error:&parseError];
  93. return [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
  94. }
  95. #pragma mark 检测密码格式 密码8-32位必须包含数字和字母
  96. +(BOOL)isValidatePassword:(NSString *)password {
  97. //密码字符格式
  98. NSString * regex = @"(?![^a-zA-Z0-9]+$)(?![^a-zA-Z/D]+$)(?![^0-9/D]+$).{8,32}$";
  99. NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];
  100. return [pred evaluateWithObject:password]&&(password.length <= 32)&&(password.length >= 8);
  101. }
  102. #pragma mark 检测邮箱格式
  103. +(BOOL)isValidateEmail:(NSString *)email {
  104. NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";
  105. NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];
  106. return [emailTest evaluateWithObject:email];
  107. }
  108. #pragma mark 检测用户名是否合法 4-32位,由中文/字母/数字组成,但不能是纯数字
  109. +(BOOL)isValidateUserName:(NSString *)userName {
  110. NSInteger length = [userName lengthOfBytesUsingEncoding:NSUTF8StringEncoding];
  111. length -= (length - userName.length) / 2;
  112. if (length<4||length>15) {
  113. return NO;
  114. }
  115. NSString *userNameregex = @"([\u4e00-\u9fa5]|[a-zA-Z0-9_]){4,32}$";
  116. NSPredicate *userNamepred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",userNameregex];
  117. return [userNamepred evaluateWithObject:userName];
  118. }
  119. @end