Вопрос здесь в том, как понять, является ли персонаж эмодзи или нет. У Swift есть удобный метод isEmoji
, который мы можем использовать.
Вот обновленная функция с использованием метода isEmoji
:
func removeSpecialCharacters(from text: String) -> String {
let okayChars = CharacterSet(charactersIn: "abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLKMNOPQRSTUVWXYZ1234567890-& ")
return String(text.unicodeScalars.filter { okayChars.contains($0) || $0.properties.isEmoji })
}
И на всякий случай, если кто-то собирается проверить приведенный выше код в Playground:
let input = "Hello guys !? Need some money $ ?"
let output = removeSpecialCharacters(from: input)
print(output) // Prints: Hello guys Need some money ?