2016-09-25 82 views
0

我有一些URL字符串,如:迅速 - 子從字符串

讓爲url1 = 「https://abc/help?user_info_id=5#help-article03

讓URL2 = 「https://cde?user_info_id=455&artical=4

讓URL3 = 「https://ghi/help?user_info_id=5

現在我想從這些網址獲取user_info_id。

爲url1返回5,URL2返回455和URL3返回5

這是我的代碼

func getID(string: String) -> String { 
    let range = string.rangeOfString("user_info_id=") 
    guard let endIndex = range?.endIndex else { return "" } 
    let remain = string.substringFromIndex(endIndex) 

    let num = "" 
    var result = "" 
    for c in remain.characters { 
     if num.containsString(String(c)) { 
      result.append(c) 
     } else { 
      break 
     } 
    } 
    return result 
} 

請告訴我你的想法。謝謝!

+0

嘗試正則表達式這 – pacification

+0

您也可以使用https://github.com/kylef/URITemplate.swift LIB – Avt

回答

4

使用(NS)URLComponents和過濾查詢項目:

let url1 = "https://cde?user_info_id=455&artical=4" 
if let components = NSURLComponents(string: url1), 
    let queryItems = components.queryItems, 
    let userInfoId = queryItems.filter({$0.name == "user_info_id"}).first where userInfoId.value != nil { 
    print(userInfoId.value!) 
}