iOS实现去除html标签的方法汇总
前言
我们在一些开发中,很有必要过滤掉用户输入的文本中的HTML标签以防范XSS攻击,本文将详细介绍关于iOS去除html标签的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。
请求接口返回的数据里包含html标签,OC中去掉的方法之前做过,代码如下
-(NSString*)filterHTML:(NSString*)html{ NSScanner*scanner=[NSScannerscannerWithString:html]; NSString*text=nil; while([scannerisAtEnd]==NO) { [scannerscanUpToString:@"<"intoString:nil]; [scannerscanUpToString:@">"intoString:&text]; html=[htmlstringByReplacingOccurrencesOfString:[NSStringstringWithFormat:@"%@>",text]withString:@""]; } returnhtml; }
也可以使用正则去掉
-(NSString*)getZZwithString:(NSString*)string{ NSRegularExpression*regularExpretion=[NSRegularExpressionregularExpressionWithPattern:@"<[^>]*>|\n" options:0 error:nil]; string=[regularExpretionstringByReplacingMatchesInString:stringoptions:NSMatchingReportProgressrange:NSMakeRange(0,string.length)withTemplate:@""]; returnstring; }
还可以转换为富文本
+(NSMutableAttributedString*)praseHtmlStr:(NSString*)htmlStr{ NSMutableAttributedString*attributedString=[[NSMutableAttributedStringalloc]initWithData:[htmlStrdataUsingEncoding:NSUnicodeStringEncoding]options:@{NSDocumentTypeDocumentAttribute:NSHTMLTextDocumentType,NSCharacterEncodingDocumentAttribute:@(NSUTF8StringEncoding)}documentAttributes:nilerror:nil]; [attributedStringaddAttribute:NSFontAttributeNamevalue:[UIFontsystemFontOfSize:13]range:NSMakeRange(0,attributedString.length)]; [attributedStringaddAttribute:NSForegroundColorAttributeNamevalue:CommonColor(Color333333)range:NSMakeRange(0,attributedString.length)]; returnattributedString; }
但是这次使用的是swift,来看我收集的几种方法,其实都差不多
funcremoveHTML(htmlString:String)->String{ returnhtmlString.replacingOccurrences(of:"<[^>]+>",with:"",options:.regularExpression,range:nil) } extensionString{ funcdeleteHTMLTag(tag:String)->String{ returnself.replacingOccurrences(of:"(?i)?\(tag)\\b[^<]*>",with:"",options:.regularExpression,range:nil) } funcdeleteHTMLTags(tags:[String])->String{ varmutableString=self fortagintags{ mutableString=mutableString.deleteHTMLTag(tag:tag) } returnmutableString } ///去掉字符串标签 mutatingfuncfilterHTML()->String?{ letscanner=Scanner(string:self) vartext:NSString? while!scanner.isAtEnd{ scanner.scanUpTo("<",into:nil) scanner.scanUpTo(">",into:&text) self=self.replacingOccurrences(of:"\(text==nil?"":text!)>",with:"") } returnself } }
总结
以上就是这篇文章的全部内容了,本文还有许多不足,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对毛票票的支持。