对字符串MD5
/**
* 数据MD5
*
* @return MD5之后的数据
*/
- (NSString *)stringFromMD5
{
if(self == nil || [self length] == 0)
return nil;
const char *value = [self UTF8String];
unsigned char outputBuffer[CC_MD5_DIGEST_LENGTH];
CC_MD5(value, (int)strlen(value), outputBuffer);
NSMutableString *outputString = [[NSMutableString alloc] initWithCapacity:CC_MD5_DIGEST_LENGTH * 2];
for(NSInteger count = 0; count < CC_MD5_DIGEST_LENGTH; count++){
[outputString appendFormat:@"%02X",outputBuffer[count]];
}
return outputString;
}
对数字字符格式千位符,如100,000
/**
* 数字转字符串,带千位符(逗号)
*
* @return 返回带千位符的字符串
*/
- (NSString *)toFormatNumberString
{
@try
{
if (self.length < 3)
{
return self;
}
NSString *numStr = self;
NSArray *array = [numStr componentsSeparatedByString:@"."];
NSString *numInt = [array objectAtIndex:0];
if (numInt.length <= 3)
{
return self;
}
NSString *suffixStr = @"";
if ([array count] > 1)
{
suffixStr = [NSString stringWithFormat:@".%@",[array objectAtIndex:1]];
}
NSMutableArray *numArr = [[NSMutableArray alloc] init];
while (numInt.length > 3)
{
NSString *temp = [numInt substringFromIndex:numInt.length - 3];
numInt = [numInt substringToIndex:numInt.length - 3];
[numArr addObject:[NSString stringWithFormat:@",%@",temp]];//得到的倒序的数据
}
int count = (int)[numArr count];
for (int i = 0; i < count; i++)
{
numInt = [numInt stringByAppendingFormat:@"%@",[numArr objectAtIndex:(count -1 -i)]];
}
numStr = [NSString stringWithFormat:@"%@%@",numInt,suffixStr];
return numStr;
}
@catch (NSException *exception)
{
return self;
}
@finally
{}
}
计算文字据点高度
/**
* 计算文字的宽高
* 使用方法 [strText sizeMakeWithFont:[UIFont systemFontOfSize:12] maxW:100];
*
* @param font 字体大小
* @param maxW 字体所在的范围的宽度
*
* @return 返回字体所在的范围宽度下的高度。即知道宽,计算高
*/
- (CGSize)sizeMakeWithFont:(UIFont *)font maxW:(CGFloat)maxW
{
NSMutableDictionary *attrs = [NSMutableDictionary dictionary];
attrs[NSFontAttributeName] = font;
CGSize maxSize = CGSizeMake(maxW, MAXFLOAT);
return [self boundingRectWithSize:maxSize options:NSStringDrawingTruncatesLastVisibleLine|NSStringDrawingUsesLineFragmentOrigin|
NSStringDrawingUsesFontLeading attributes:attrs context:nil].size;
}
谓词NSPredicate
与正则表达式匹配字符串,参考在线工具
/**
* 邮箱判定
*
* @return 判定结果
*/
- (BOOL)isValidEmail
{
NSString *regex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";
NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex];
return [emailTest evaluateWithObject:self];
}