亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

iOS實現去除html標簽的方法匯總

發布時間:2020-08-28 13:28:15 來源:腳本之家 閱讀:631 作者:隨風 欄目:移動開發

前言

我們在一些開發中,很有必要過濾掉用戶輸入的文本中的HTML標簽以防范XSS攻擊,本文將詳細介紹關于iOS去除html標簽的相關內容,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹吧。

請求接口返回的數據里包含html標簽,OC中去掉的方法之前做過,代碼如下

-(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;
}

還可以轉換為富文本

+ (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,來看我收集的幾種方法,其實都差不多

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
  }
  
  ///去掉字符串標簽
  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
  }
}

總結

以上就是這篇文章的全部內容了,本文還有許多不足,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

铁岭县| 苍溪县| 咸丰县| 常州市| 从化市| 什邡市| 喀喇沁旗| 海兴县| 尼勒克县| 南岸区| 定襄县| 易门县| 龙海市| 察雅县| 普兰店市| 沈丘县| 沧州市| 旌德县| 罗江县| 琼中| 阜宁县| 保康县| 武胜县| 安康市| 承德县| 天祝| 广平县| 右玉县| 伊川县| 胶州市| 睢宁县| 香河县| 绵竹市| 凤阳县| 玉门市| 贺州市| 大安市| 民和| 贡嘎县| 松阳县| 若尔盖县|