-(NSMutableAttributedString *)addTest:(NSString *)text{
NSLog(@"text-[@454,新用户470]--%@",text);
// @的规则
_textArray=[[NSMutableArrayalloc]init];
// NSString *atPattern = @"@[0-9a-zA-Z\\u4e00-\\u9fa5+^[\u4E00-\u9FA5A-Za-z0-9_]+$+]+";
NSString *atPattern=@"\\[@(\\d+),(.*?)\\]";
[text enumerateStringsMatchedByRegex:atPatternusingBlock:^(NSInteger captureCount,NSString *const__unsafe_unretained *capturedStrings, const NSRange *capturedRanges, volatile BOOL *const stop) {
NSRange range=*capturedRanges;
JRTextModel * model=[[JRTextModelalloc] init];
model.text=*capturedStrings;
model.index=range.location;
model.type=0;
NSLog(@"0-------%@",model.text);
[self.textArrayaddObject:model];
}];
[text enumerateStringsSeparatedByRegex:atPatternusingBlock:^(NSInteger captureCount,NSString *const__unsafe_unretained *capturedStrings, const NSRange *capturedRanges, volatile BOOL *const stop) {
NSRange range=*capturedRanges;
JRTextModel * model=[[JRTextModelalloc] init];
model.text=*capturedStrings;
model.index=range.location;
model.type=1;
NSLog(@"1-------%@",model.text);
[self.textArrayaddObject:model];
}];
[self.textArraysortUsingComparator:^NSComparisonResult(JRTextModel * obj1,JRTextModel * obj2) {
return obj1.index-obj2.index;
}];
NSMutableAttributedString *mattr=[[NSMutableAttributedStringalloc]init];
int atNum=0;
for (JRTextModel *modelin self.textArray) {
if (model.type==1) {
if(model.text.length>0){
NSAttributedString *str=[[NSAttributedStringalloc]initWithString:model.text];
[mattr appendAttributedString:str];
}
}else{
//
NSString *textstr=[NSStringstringWithFormat:@"%@",model.text];
NSRange
startRange = [textstr rangeOfString:@"[@"];
NSRange endRange;
if (startRange.length!=0) {
endRange = [textstr rangeOfString:@","];
}else{
endRange = [textstr rangeOfString:@""];
}
NSRange
range = NSMakeRange(startRange.location
+ startRange.length,
endRange.location
- startRange.location
- startRange.length);
NSLog(@"textstr---%@",textstr);
NSString *result = [textstr substringWithRange:range];
NSString *str=[NSStringstringWithFormat:@"%@,",result];
NSLog(@"result---%@",result);
NSLog(@"str---%@",str);
NSString *strUrl = [textstrstringByReplacingOccurrencesOfString:str withString:@""]; //去掉
NSString * str1 = [strUrlstringByReplacingOccurrencesOfString:@"[@"withString:@"@"];//替换字符
NSString * str2 = [str1stringByReplacingOccurrencesOfString:@"]"withString:@""];//替换字符
// strUrl=str2;
NSLog(@"str2:%@",str2);
NSAttributedString *laststr1=[[NSAttributedStringalloc]initWithString:str2];
//添加文字颜色
[mattr appendAttributedString:laststr1];
if (range.length!=0) {
if (atNum==0) {
[mattr addAttribute:NSLinkAttributeNamevalue:[NSStringstringWithFormat:@"postatme://%@",result]range:NSMakeRange(model.index, laststr1.length)];
}else{
[mattr addAttribute:NSLinkAttributeNamevalue:[NSStringstringWithFormat:@"postatme://%@",result]range:NSMakeRange(model.index-atNum*(3+(int)(endRange.location - startRange.location- startRange.length)), laststr1.length)];
}
atNum++;
// [mattr addAttribute:NSForegroundColorAttributeName value:THEMECOLOR range:NSMakeRange(model.index, laststr1.length)];
}else{
// result=@"";
}
}
[mattr addAttribute:NSFontAttributeNamevalue:[UIFontsystemFontOfSize:kStatuContentFont]range:NSMakeRange(0, mattr.length)];
//
}
return mattr;
}
#import <Foundation/Foundation.h>
@interface JRTextModel : NSObject
@property(nonatomic,strong)NSString *text;
@property(nonatomic,assign)NSInteger index;
@property(nonatomic,assign)NSInteger type;
@end