使用swift从URL中删除参数

doe*_*oej 5 string url swift

我有一个看起来像myapp://jhb/test/deeplink/url?id=4567. 我想删除?字符后的所有内容。最后,URL 应如下所示myapp://jhb/test/deeplink/url。如何。我能做到吗?将网址转换为字符串?正则表达式?

luk*_*302 10

使用URLComponents不同的URL部分分开,处理它们,然后提取新的网址:

var components = URLComponents(string: "myapp://jhb/test/deeplink/url?id=4567")!
components.query = nil
print(components.url!)
Run Code Online (Sandbox Code Playgroud)

myapp://jhb/test/deeplink/url


onm*_*133 8

方便的 URL 扩展


private extension URL {
    var removingQueries: URL {
        if var components = URLComponents(string: absoluteString) {
            components.query = nil
            return components.url ?? self
        } else {
            return self
        }
    }
}

Run Code Online (Sandbox Code Playgroud)


Usm*_*ved 0

你可以这样做

let values = utl?.components(separatedBy: "?")[0]
Run Code Online (Sandbox Code Playgroud)

它将破坏字符串并?返回数组。第一个对象为values您提供结果字符串。