//html是超文本,length是字节数 + (NSAttributedString *)attributedStringWithHtml:(NSString *)html length:(CGFloat)length{ NSAttributedString * attribute = [self attributedStringWithHtml:html]; if (attribute && attribute.string && [attribute.string isKindOfClass:[NSString class]]) { CGFloat character = 0; NSString *subString = attribute.string; //字节数 for(int i=0; i< [subString length];i++){ int a = [subString characterAtIndex:i]; if( a >= 0x4e00 && a <= 0x9fa5){ //判断是否为中文 character +=2; }else{//是否是大小写字母,是否是阿拉伯数字,是否是这几个特殊符号 if ((isalpha(a))||(isalnum(a))||((a=='_'))||(a=='@')||(a=='.')||(a=='-')) { character+=1; }else{ if (isascii(a)) {//是否是ASCII码 character +=1; }else{//是中文字符 character +=2; } } } if (character > length) {//按字数截取 if (character == length) { subString = [subString substringToIndex:i+1]; }else{ subString = [subString substringToIndex:i]; } //超出的部分用...代替 subString = [subString stringByAppendingString:@"..."]; attribute = [self attributedStringWithHtml:subString]; break; } } } return attribute; }
如果是字符串的话,直接修改下方法传入字符串