Develop/Swift
String에 HTML 링크 적용
hsleedevelop
2023. 1. 7. 17:24
반응형
String에 HTML 링크 적용하는 방법입니다.
기본 제공하는 디텍터를 이용해서 링크를 찾고, 태그로 감싸진 경우에는 예외 처리되었습니다.
func wrapLinkText() -> String? {
let detector = try? NSDataDetector(types: NSTextCheckingResult.CheckingType.link.rawValue)
guard let matches = detector?.matches(in: self, options: [], range: NSRange(location: 0, length: self.utf16.count)),
matches.count > 0 else {
return self
}
let validators = [">", "\""]
var result = self
for match in matches.reversed() {
guard let range = Range(match.range, in: result) else { continue }
if let prefix = result[safe: result.index(range.lowerBound, offsetBy: -1)], validators.contains(prefix.string) {
continue
}
let link = result[range]
result.replaceSubrange(range, with: "<a href=\"\(link)\">\(link)</a>")
}
return result
}
반응형