J'ai le même problème que dans cette question:
Comment puis-je vérifier si une chaîne contient une autre chaîne dans Swift?
Mais maintenant, quelques mois plus tard, je me demande si cela peut être fait sans utiliser NSString? I Nice et simple contient-méthode serait bien. J'ai cherché sur le web et la documentation mais je n'ai rien trouvé!
De la même manière, juste avec la syntaxe Swift:
let string = "This is a test. This is only a test"
if string.rangeOfString("only") != nil {
println("yes")
}
Pour Swift 3.0
if str.range(of: "abc") != nil{
print("Got the string")
}
String
fournit en fait une fonction "contient" via StringProtocol
.
Aucune extension nécessaire:
let str = "asdf"
print(str.contains("sd") ? "yep" : "nope")
https://developer.Apple.com/reference/Swift/stringhttps://developer.Apple.com/documentation/Swift/stringprotocol
Si vous voulez vérifier si votre chaîne correspond à un modèle spécifique, je peux recommander l'article de NSHipster sur NSRegularExpressions: http://nshipster.com/nsregularexpression/
juste pour démontrer l'utilisation des options.
var string = "This is a test. This is only a test. Not an Exam"
if string.range(of:"ex") != nil {
print("yes")
}
if string.range(of:"ex", options: String.CompareOptions.caseInsensitive) != nil {
print("yes")
}
J'ai écrit une extension sur String for Swift 3.0 afin que je puisse simplement appeler absoluteString.contains(string: "/kredit/")
extension String {
public func contains(string: String)-> Bool {
return self.rangeOfString(string) != nil
}
}