J'ai une URL qui ressemble à myapp://jhb/test/deeplink/url?id=4567
. Je veux tout effacer après le caractère ?
. A la fin l'URL devrait ressembler à myapp://jhb/test/deeplink/url
. Comment. puis-je réaliser cela? convertir l'URL en une chaîne? Regex?Supprimer le paramètre de l'URL avec swift
Répondre
Vous pouvez faire comme ce
let values = utl?.components(separatedBy: "?")[0]
Il brisera la chaîne avec ?
et retourner le tableau. Le premier objet de values
vous donne votre chaîne résultante.
Vous pouvez obtenir chaque composant URL séparée de URl en utilisant
print("\(url.host!)") //Domain name
print("\(url.path)") // Path
print("\(url.query)") // query string
Utilisez URLComponents
pour séparer les différentes parties d'URL, les manipuler, puis extraire la nouvelle url:
var components = URLComponents(string: "myapp://jhb/test/deeplink/url?id=4567")!
components.query = nil
print(components.url!)
myapp://jhb/test/deeplink/url
puis-je y parvenir? convertir l'URL en une chaîne? Regex?
Lorsque l'on travaille avec des URL, il serait préférable de le traiter comme URLComponent
:
Une structure qui analyse les URL en URL et construit à partir de leurs parties constitutives .
donc, se référant à URLComponent que demandez-vous est d'enlever le la query sous-composant de l'url:
if var componenets = URLComponents(string: "myapp://jhb/test/deeplink/url?id=4567") {
componenets.query = nil
print(componenets) // myapp://jhb/test/deeplink/url
}
Notez que query
est une en option chaîne, ce qui signifie qu'il pourrait être nul (comme mentionné dans l'extrait de code, ce qui devrait conduire à la sortie désirée).
Il suffit de regarder celui-ci https://stackoverflow.com/questions/39184984/delete-all-characters-after-a-certain-character-from-a-string-in-swift –