使用swift从URL中删除参数
问题描述:
我有一个类似于myapp://jhb/test/deeplink/url?id=4567
的URL。 我想删除?
char之后的所有东西。最后,URL应该看起来像myapp://jhb/test/deeplink/url
。怎么样。我可以做到吗?将网址转换为字符串?正则表达式?使用swift从URL中删除参数
答
你可以这样做
let values = utl?.components(separatedBy: "?")[0]
这将打破串?
并返回数组。 values
的第一个对象给你你的结果字符串。
答
你可以使用
print("\(url.host!)") //Domain name
print("\(url.path)") // Path
print("\(url.query)") // query string
答
使用URLComponents
不同的URL部分分开,处理它们,然后提取新的URL从以下网址分隔每个URL部分:
var components = URLComponents(string: "myapp://jhb/test/deeplink/url?id=4567")!
components.query = nil
print(components.url!)
myapp://jhb/test/deeplink/url
答
我可以做到吗?将网址转换为字符串?正则表达式?
当使用URL,倒不如把它当作URLComponent
:
该网址解析成和结构的网址从他们 组成部分的结构。
因此,参照URLComponent什么是你问的是从URL中删除的query子:
if var componenets = URLComponents(string: "myapp://jhb/test/deeplink/url?id=4567") {
componenets.query = nil
print(componenets) // myapp://jhb/test/deeplink/url
}
注意query
是可选字符串,这意味着它可能是零(如代码片段中所述,这应该会导致您所需的输出)。
只是看看这一个https://stackoverflow.com/questions/39184984/delete-all-characters-after-a-certain-character-from-a-string-in-swift –