当前位置:  开发笔记 > 编程语言 > 正文

从字符串中删除HTML标记

如何解决《从字符串中删除HTML标记》经验,为你挑选了3个好方法。

删除所有HTML标签,如 

从字符串.我使用下面的代码,但它不起作用.

var content = "

  test result


"; // My String content.replacingOccurrences(of: "<[^>]+>", with: "", options: String.CompareOptions.regularExpression, range: nil)

但它不会从字符串中删除所有HTML标记.



1> Idan..:
var content = "

  test result


"; // My String let a = content.replacingOccurrences(of: "<[^>]+>", with: "", options: String.CompareOptions.regularExpression, range: nil)

a将是:   test result

let b = a.replacingOccurrences(of: "&[^;]+;", with: "", options: String.CompareOptions.regularExpression, range: nil)

b现在是: test result

这也将照顾<等等.没有魔力.找出你需要的东西,然后写出适当的RegEx.



2> 192kb..:

经Swift 4测试:删除所有HTML标记并解码实体

提供更稳定的结果

extension String {
    public var withoutHtml: String {
        guard let data = self.data(using: .utf8) else {
            return self
        }

        let options: [NSAttributedString.DocumentReadingOptionKey: Any] = [
            .documentType: NSAttributedString.DocumentType.html,
            .characterEncoding: String.Encoding.utf8.rawValue
        ]

        guard let attributedString = try? NSAttributedString(data: data, options: options, documentAttributes: nil) else {
            return self
        }

        return attributedString.string
    }
}


谨防。这种方法存在一些已知问题。https://forums.developer.apple.com/thread/115405

3> Pravin Kambl..:

使用在Swift 3.0中在Playground上测试的“跟随扩展”

extension String {
    var withoutHtmlTags: String {
      return self.replacingOccurrences(of: "<[^>]+>", with: "", options: .regularExpression, range: nil)
    }
}

用法

let result = "HTML Tags Contain  String".withoutHtmlTags

推荐阅读
wangtao
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有