国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 系統(tǒng) > iOS > 正文

iOS實(shí)現(xiàn)去除html標(biāo)簽的方法匯總

2019-10-21 18:44:08
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

前言

我們?cè)谝恍╅_(kāi)發(fā)中,很有必要過(guò)濾掉用戶輸入的文本中的HTML標(biāo)簽以防范XSS攻擊,本文將詳細(xì)介紹關(guān)于iOS去除html標(biāo)簽的相關(guān)內(nèi)容,分享出來(lái)供大家參考學(xué)習(xí),下面話不多說(shuō)了,來(lái)一起看看詳細(xì)的介紹吧。

請(qǐng)求接口返回的數(shù)據(jù)里包含html標(biāo)簽,OC中去掉的方法之前做過(guò),代碼如下

-(NSString *)filterHTML:(NSString *)html{  NSScanner * scanner = [NSScanner scannerWithString:html];  NSString * text = nil;  while([scanner isAtEnd]==NO)  {    [scanner scanUpToString:@"<" intoString:nil];    [scanner scanUpToString:@">" intoString:&text];    html = [html stringByReplacingOccurrencesOfString:[NSString stringWithFormat:@"%@>",text] withString:@""];  }  return html;}

也可以使用正則去掉

-(NSString *)getZZwithString:(NSString *)string{ NSRegularExpression *regularExpretion=[NSRegularExpression regularExpressionWithPattern:@"<[^>]*>|/n"                                         options:0                                          error:nil]; string=[regularExpretion stringByReplacingMatchesInString:string options:NSMatchingReportProgress range:NSMakeRange(0, string.length) withTemplate:@""]; return string;}

還可以轉(zhuǎn)換為富文本

+ (NSMutableAttributedString *)praseHtmlStr:(NSString *)htmlStr {  NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithData:[htmlStr dataUsingEncoding:NSUnicodeStringEncoding] options:@{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType,NSCharacterEncodingDocumentAttribute :@(NSUTF8StringEncoding)} documentAttributes:nil error:nil];  [attributedString addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:13] range:NSMakeRange(0, attributedString.length)];  [attributedString addAttribute:NSForegroundColorAttributeName value:CommonColor(Color333333) range:NSMakeRange(0, attributedString.length)];   return attributedString;}

但是這次使用的是swift,來(lái)看我收集的幾種方法,其實(shí)都差不多

func removeHTML(htmlString : String)->String{    return htmlString.replacingOccurrences(of: "<[^>]+>", with: "", options: .regularExpression, range: nil)} extension String {  func deleteHTMLTag(tag:String) -> String {    return self.replacingOccurrences(of: "(?i)</?/(tag)//b[^<]*>", with: "", options: .regularExpression, range: nil)  }    func deleteHTMLTags(tags:[String]) -> String {    var mutableString = self    for tag in tags {      mutableString = mutableString.deleteHTMLTag(tag: tag)    }    return mutableString  }    ///去掉字符串標(biāo)簽  mutating func filterHTML() -> String?{    let scanner = Scanner(string: self)    var text: NSString?    while !scanner.isAtEnd {      scanner.scanUpTo("<", into: nil)      scanner.scanUpTo(">", into: &text)      self = self.replacingOccurrences(of: "/(text == nil ? "" : text!)>", with: "")    }    return self  }}

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,本文還有許多不足,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)VEVB武林網(wǎng)的支持。


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到IOS開(kāi)發(fā)頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 商都县| 理塘县| 吉水县| 恩平市| 陇西县| 甘孜| 济南市| 台南市| 唐山市| 武强县| 沂南县| 册亨县| 安龙县| 平潭县| 河津市| 囊谦县| 沙坪坝区| 靖西县| 麻栗坡县| 高密市| 新竹市| 普安县| 武乡县| 台中市| 奉新县| 广丰县| 莲花县| 沂源县| 兴国县| 龙胜| 磐安县| 金川县| 宜宾市| 晋州市| 东海县| 栖霞市| 封开县| 富宁县| 崇礼县| 宜黄县| 宽甸|