删除所有HTML标签,如 或<p>从字符串.我使用下面的代码,但它不起作用.
var content = "<p> test result</p><br/>"; // My String
content.replacingOccurrences(of: "<[^>]+>", with: "", options: String.CompareOptions.regularExpression, range: nil)
Run Code Online (Sandbox Code Playgroud)
但它不会从字符串中删除所有HTML标记.
Ida*_*dan 14
var content = "<p> test result</p><br/>"; // My String
let a = content.replacingOccurrences(of: "<[^>]+>", with: "", options: String.CompareOptions.regularExpression, range: nil)
Run Code Online (Sandbox Code Playgroud)
a将是: test result
let b = a.replacingOccurrences(of: "&[^;]+;", with: "", options: String.CompareOptions.regularExpression, range: nil)
Run Code Online (Sandbox Code Playgroud)
b现在是: test result
这也将照顾<等等.没有魔力.找出你需要的东西,然后写出适当的RegEx.
小智 11
为此,我们可以使用
extension String {
var withoutHtmlTags: String {
return self.replacingOccurrences(of: "<[^>]+>", with: "", options:
.regularExpression, range: nil).replacingOccurrences(of: "&[^;]+;", with:
"", options:.regularExpression, range: nil)
}
}
Run Code Online (Sandbox Code Playgroud)
经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
}
}
Run Code Online (Sandbox Code Playgroud)
使用在Swift 3.0中在Playground上测试的“跟随扩展”
extension String {
var withoutHtmlTags: String {
return self.replacingOccurrences(of: "<[^>]+>", with: "", options: .regularExpression, range: nil)
}
}
Run Code Online (Sandbox Code Playgroud)
用法
let result = "<strong>HTML</strong> Tags <em>Contain</em> <img /> <a href=\"\">String</a>".withoutHtmlTags
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8854 次 |
| 最近记录: |