去除标签,考虑到标签的不完整情况,比如有<p>却没有</p>,实际上是对有效"<>"符号的处理。
func trimmingHTML() -> String {
var str = self ///这里可以替换成想要处理的字符串,通过参数传进来即可
var indexs: [Int] = []
for (index, c) in str.enumerated() {
if String(c) == "<" {
if let i = indexs.last, str[i] == "<" {
break
}
indexs.append(index)
} else if String(c) == ">" {
if let i = indexs.last, str[i] == ">" {
indexs.removeLast()
}
indexs.append(index)
}
}
if indexs.count > 0 {
if let i = indexs.first, str[i] == ">" {
indexs.removeFirst()
}
if let i = indexs.last, str[i] == "<" {
indexs.removeLast()
}
}
if indexs.count == 0 {
return str
}
var needRemoves: [String] = []
for i in 0...(indexs.count - 1) / 2 {
let start = indexs[i * 2]
let end = indexs[i * 2 + 1] + 1
if let substring = str[start..<end] {
needRemoves.append(String(substring))
}
}
for n in needRemoves {
str = str.replacingOccurrences(of: n, with: "")
}
return str
}
网友评论