【iOS】过滤html标签

文字(UI或分享时的标题(描述))展示给用户的时候,可能需要过滤掉html标签,有的开发团队可能把过滤操作放在后端处理,其实放在前端做相对来说比较合理(灵活性)。

  • 那么怎样才能高效有效的过滤这些标签呢?首先想到的就是使用正则……我们我可以写一个NSString->Category
#pragma mark - ============== 正则去除HTML标签 ==============
+ (NSString *)getNormalStringFilterHTMLString:(NSString *)htmlStr{
    NSString *normalStr = htmlStr.copy;
    //判断字符串是否有效
    if (!normalStr || normalStr.length == 0 || [normalStr isEqual:[NSNull null]]) return nil;
    
    //过滤正常标签
    NSRegularExpression *regularExpression=[NSRegularExpression regularExpressionWithPattern:@"<[^>]*>" options:NSRegularExpressionCaseInsensitive error:nil];
    normalStr = [regularExpression stringByReplacingMatchesInString:normalStr options:NSMatchingReportProgress range:NSMakeRange(0, normalStr.length) withTemplate:@""];
    
    //过滤占位符
    NSRegularExpression *plExpression=[NSRegularExpression regularExpressionWithPattern:@"&[^;]+;" options:NSRegularExpressionCaseInsensitive error:nil];
    normalStr = [plExpression stringByReplacingMatchesInString:normalStr options:NSMatchingReportProgress range:NSMakeRange(0, normalStr.length) withTemplate:@""];
    
    //过滤空格
    NSRegularExpression *spaceExpression=[NSRegularExpression regularExpressionWithPattern:@"^\\s*|\\s*$" options:NSRegularExpressionCaseInsensitive error:nil];
    normalStr = [spaceExpression stringByReplacingMatchesInString:normalStr options:NSMatchingReportProgress range:NSMakeRange(0, normalStr.length) withTemplate:@""];

    return normalStr;
}

Perfect over~~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在今天在数据处理的时候,后台返回的json中有个字段是html内容,但是我这边只需要里面的文字部分,就写了如下这个方法:
    degulade阅读 3,073评论 2 3
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,983评论 25 708
  • 中午睡觉也一直没有睡安稳,总是想为什么那个录取通知电话会不会来,其实心里还是有数的,昨天的话就是拒绝的意思,但是还...
    溪熙阅读 268评论 0 0
  • 负能量,这是一个感同身受的词语,可以说是我们生活中任谁也逃不开的一个魔咒。 用同事任晓飞的话来说就是:它,恶鬼一样...
    大狗狗来福阅读 503评论 0 4
  • 如果故事没有结局 时光倒退 那晚的长河落日 孤城远山 我曾拭过手中的剑 一碗老酒 慰不平我心中的丘壑,寂寞 谁能与...
    多情的刀阅读 325评论 0 0