2016-09-25 76 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!) 
}