Swift: как проверить, содержит ли строка только URL - PullRequest
0 голосов
/ 06 июля 2018

Со стороны сервера иногда я получаю простую строку, иногда строку, содержащую URL, а иногда только URL. Как проверить, содержит ли эта строка только URL, без другого текста.

enter image description here

1 Ответ

0 голосов
/ 06 июля 2018

Добавьте ниже две функции в ваш ViewContoller

func getUrlStringFromString(text: String) - > String {

var tempStrArray = text.components(separatedBy: " ")
var urlString = ""
    for i in 0 ..< tempStrArray.count {
        if isValidUrl(str: "\(tempStrArray[i])") {
            urlString = tempStrArray[i]
        } 
    }
    return  urlString
}

func isValidUrl(str: String) -> Bool {
    let detector = try! NSDataDetector(types: NSTextCheckingResult.CheckingType.link.rawValue)
    if let match = detector.firstMatch(in: str, options: [], range: NSRange(location: 0, length: str.endIndex.encodedOffset)) {
        // it is a link, if the match covers the whole string
        return match.range.length == str.endIndex.encodedOffset
    } else {
        return false
    }
}

Затем позвоните getUrlStringFromString со своей строкой

let urlString = self.getStringFromSting(text: YOUR_STRING)
if urlString != "" {
 //YOUR_STRING have url. and urlString contains URL
} else {
 //YOUR_STRING doesn't have url.
}

Надеюсь, это поможет вам

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...