首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSDataDetector检测链接中的特殊字符

NSDataDetector检测链接中的特殊字符
EN

Stack Overflow用户
提问于 2016-05-30 21:51:07
回答 2查看 712关注 0票数 1

我使用NSDataDetector扫描文本中的链接,然后返回它们。我已经让它在常规字母表上工作,但由于我生活的国家有一些英语字母表的补充,我不能使用NSDataDetector来检测包含这些字符的链接。

具体地说,它是不起作用的“doesnäö”。我的代码如下所示:

代码语言:javascript
复制
 var urlStrings = [String]()

 let types: NSTextCheckingType = .Link

 do {
        let detector = try NSDataDetector(types: types.rawValue)
        let matches = detector.matchesInString(self, options: .ReportCompletion, range: NSMakeRange(0, self.characters.count))

        for match in matches {

            if let url = match.URL?.absoluteString {
                urlStrings.append(url)
            }
        }
        return urlStrings
      } catch {
        return urlStrings
   }
EN

回答 2

Stack Overflow用户

发布于 2016-05-31 01:15:29

您好,我做了一点修改你的代码,并完美地为我工作

代码语言:javascript
复制
func detectLinks() -> [String]
{
    let string = "http://www.gåäögle.com/testMasåäö http://www.google.com/testMasåäö http://www.gp.se/livsstil/konsument/vegetariskt-ä4r-inte-alltid-så5-nyttigt-1.1236926"
    var urlStrings = [String]()

    let types: NSTextCheckingType = .Link

    do {
        let detector = try NSDataDetector(types: types.rawValue)
        let matches = detector.matchesInString(string, options: .ReportCompletion, range: NSMakeRange(0, string.characters.count))

        for match in matches {

            if let url = match.URL?.absoluteString {
                urlStrings.append(url)
            }
        }
        return urlStrings
    } catch {
        return urlStrings
    }


}

也许你的问题与self.characters.count有关,你可以检查哪里出了问题,但对我来说,这段代码运行得很好,运行这段代码后,urlStrings包含了3个字符串。我希望这对你有帮助

票数 0
EN

Stack Overflow用户

发布于 2016-05-31 01:25:27

我使用这段代码来创建链接,如果链接中有特殊字符,就不会崩溃,比如:

代码语言:javascript
复制
var url = "http://www.someurlwithæøåorsomethingelse.com"
let safeUrl = url.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLQueryAllowedCharacterSet())
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37527375

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档