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
}
}
总结
以上就是这篇文章的全部内容了,本文还有许多不足,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对毛票票的支持。