Harout360 Harout360 - 1 year ago 373
iOS Question

How to remove special characters from string in Swift 2?

The answer in
How to strip special characters out of string?
is not working.

Here is what I got and it gives me an error

func removeSpecialCharsFromString(str: String) -> String {
let chars: Set<String> = Set(arrayLiteral: "abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLKMNOPQRSTUVWXYZ1234567890+-*=(),.:!_")

return String(str.characters.filter { chars.contains($0) }) //error here at $0

The error at $0 says _Element(aka Character) cannot be converted to expected argument type 'String'.

Answer Source

Like this:

func removeSpecialCharsFromString(text: String) -> String {
    let okayChars : Set<Character> = 
        Set("abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLKMNOPQRSTUVWXYZ1234567890+-*=(),.:!_".characters)
    return String(text.characters.filter {okayChars.contains($0) })

And here's how to test:

let s = removeSpecialCharsFromString("père") // "pre"