How to remove diacritics from a String in Swift?

后端 未结 4 2046
醉话见心
醉话见心 2020-12-01 01:32

How to remove diacritics (or accents) from a String (like say change \"één\" to \"een\") in Swift? Do I have to go back to NSString or can it be do

4条回答
  •  被撕碎了的回忆
    2020-12-01 01:34

    Update to @MartinR's answer… a Swift 3 extension to provide a string for sorting / searching, that might be useful for someone…

    extension String {
        var forSorting: String {
            let simple = folding(options: [.diacriticInsensitive, .widthInsensitive, .caseInsensitive], locale: nil)
            let nonAlphaNumeric = CharacterSet.alphanumerics.inverted
            return simple.components(separatedBy: nonAlphaNumeric).joined(separator: "")
        }
    }
    

    e.g.

    print("Mÿ nâMe ís jÄço´B".forSorting) // "mynameisjacob"
    

提交回复
热议问题