Comment supprimer les signes diacritiques (ou les accents) d’une Ssortingng
(par exemple, changer “één” en “een”) dans Swift? Dois-je retourner à NSSsortingng
ou est-ce possible au sein de Swift?
Vous pouvez opérer directement sur une Ssortingng
Swift (si “Foundation” est importé):
let foo = "één" let bar = foo.ssortingngByFoldingWithOptions(.DiacriticInsensitiveSearch, locale: NSLocale.currentLocale()) print(bar) // een
Swift 3:
let foo = "één" let bar = foo.folding(options: .diacriticInsensitive, locale: .current) print(bar) // een
Mise à jour de la réponse de @ MartinR… une extension Swift 3 pour fournir une chaîne de sorting / recherche qui pourrait être utile pour quelqu’un…
extension Ssortingng { var forSorting: Ssortingng { let simple = folding(options: [.diacriticInsensitive, .widthInsensitive, .caseInsensitive], locale: nil) let nonAlphaNumeric = CharacterSet.alphanumerics.inverted return simple.components(separatedBy: nonAlphaNumeric).joined(separator: "") } }
par exemple
print("Mÿ nâMe ís jÄço´B".forSorting) // "mynameisjacob"