From 03b5bc4198864eff1922bd13f347683f43cc18b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8E=AB=E6=B8=85=E9=9C=86?= <2510094452@qq.com> Date: Fri, 25 Nov 2016 18:09:40 +0800 Subject: [PATCH] =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E5=8C=B9=E9=85=8DUR?= =?UTF-8?q?L=E6=AD=A3=E5=88=99=E8=A1=A8=E8=BE=BE=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- HYLabel/Source/HYLabel.swift | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/HYLabel/Source/HYLabel.swift b/HYLabel/Source/HYLabel.swift index 3fa0a5b..c863fdf 100644 --- a/HYLabel/Source/HYLabel.swift +++ b/HYLabel/Source/HYLabel.swift @@ -198,12 +198,16 @@ extension HYLabel { } private func getLinkRanges() -> [NSRange]? { - // 创建正则表达式 - guard let detector = try? NSDataDetector(types: NSTextCheckingType.Link.rawValue) else { + // 创建正则表达式 匹配URL + let pattern = "((http|ftp|https)://)(([a-zA-Z0-9\\._-]+\\.[a-zA-Z]{2,6})|([0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}))(:[0-9]{1,4})*(/[a-zA-Z0-9\\&%_\\./-~-]*)?" + + guard let regex = try? NSRegularExpression(pattern: pattern, options: []) else { return nil } - return getRangesFromResult(detector) + + + return getRangesFromResult(regex) } private func getRangesFromResult(regex : NSRegularExpression) -> [NSRange] {