国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 阿坝| 芮城县| 子长县| 岳阳市| 积石山| 安岳县| 潼南县| 修水县| 阳西县| 哈尔滨市| 鄱阳县| 玛曲县| 山西省| 广丰县| 汉沽区| 太湖县| 浮梁县| 汾西县| 同德县| 中阳县| 英德市| 容城县| 东源县| 隆子县| 慈溪市| 郁南县| 香港 | 郯城县| 内江市| 黄大仙区| 聂拉木县| 康乐县| 阿克苏市| 安图县| 岐山县| 莒南县| 绵竹市| 旺苍县| 宕昌县| 镇平县| 迭部县|