iOS html 탭 제거 방법 통합

머리말
일부 개발 에 서 는 사용자 가 입력 한 텍스트 의 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:@"<[^>]*>|
" 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
  }
}
총결산
이상 은 이 글 의 전체 내용 입 니 다.본 고 는 아직도 부족 합 니 다.본 고의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가 치 를 가지 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.

좋은 웹페이지 즐겨찾기