Swift&x2013;如何在不从字符串中删除表情符号的情况下删除特殊字符?

Swift&x2013;如何在不从字符串中删除表情符号的情况下删除特殊字符?,swift,string,special-characters,emoji,Swift,String,Special Characters,Emoji,如何在不删除表情符号的情况下从字符串中删除所有特殊字符 我试过: func removeSpecialCharsFromString(text: String) -> String { let okayChars : Set<Character> = Set("abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLKMNOPQRSTUVWXYZ1234567890-& ".characters) return S

如何在不删除表情符号的情况下从字符串中删除所有特殊字符

我试过:

func removeSpecialCharsFromString(text: String) -> String {
    let okayChars : Set<Character> = 
        Set("abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLKMNOPQRSTUVWXYZ1234567890-& ".characters)
    return String(text.characters.filter {okayChars.contains($0) })
}
func从字符串中删除特殊字符(文本:字符串)->String{
设okayChars:Set=
集合(“ABCDEFGHIJKLMNOPQRSTUVXYZ ABCDEFGHIJKLKMNOPQRSTUVXYZ1234567890-&”.characters)
返回字符串(text.characters.filter{okayChars.contains($0)})
}
–但此函数也会从字符串中删除表情符号

预期结果:


“大家好!需要一些钱吗$这里的问题是如何理解一个角色是否是表情符号。斯威夫特有一个简便的方法,我们可以使用

以下是使用
isEmoji
方法更新的函数:

func删除特殊字符(从文本:String)->String{
设okayChars=CharacterSet(charactersIn:“abcdefghijklmnopqrstuvxyz abcdefghijklkmnopqrstuvxyz1234567890-&”)
返回字符串(text.unicodeScalars.filter{okayChars.contains($0)| |$0.properties.isEmoji})
}
万一有人要在操场上测试上面的代码:


let input=“大家好!”!?需要一些钱$这里的问题是如何理解一个角色是否是表情符号。斯威夫特有一个我们可以使用的简便方法

以下是使用
isEmoji
方法更新的函数:

func删除特殊字符(从文本:String)->String{
设okayChars=CharacterSet(charactersIn:“abcdefghijklmnopqrstuvxyz abcdefghijklkmnopqrstuvxyz1234567890-&”)
返回字符串(text.unicodeScalars.filter{okayChars.contains($0)| |$0.properties.isEmoji})
}
万一有人要在操场上测试上面的代码:


let input=“大家好!需要一些钱吗$您可以使用下面的扩展名使您的句子按照所需的输出完美

extension String {
    var condensedWhitespace: String {
        let components = self.components(separatedBy: NSCharacterSet.whitespacesAndNewlines)
        return components.filter { !$0.isEmpty }.joined(separator: " ")
    }

    func removeSpecialCharacters() -> String {
        let okayChars = CharacterSet(charactersIn: "abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLKMNOPQRSTUVWXYZ1234567890 ")
        return String(self.unicodeScalars.filter { okayChars.contains($0) || $0.properties.isEmoji })
    }
}
例如


let input=“大家好!”!?需要一些钱$您可以使用下面的扩展,使您的句子按照所需的输出完美

extension String {
    var condensedWhitespace: String {
        let components = self.components(separatedBy: NSCharacterSet.whitespacesAndNewlines)
        return components.filter { !$0.isEmpty }.joined(separator: " ")
    }

    func removeSpecialCharacters() -> String {
        let okayChars = CharacterSet(charactersIn: "abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLKMNOPQRSTUVWXYZ1234567890 ")
        return String(self.unicodeScalars.filter { okayChars.contains($0) || $0.properties.isEmoji })
    }
}
例如


let input=“大家好!需要一些钱吗?$这可能会有帮助-@mag_zbc谢谢,但我看不出该链接对我有什么帮助。我已经使用扩展名查看我的字符串是否包含表情符号。你说的“特殊字符”是什么意思?你是说“除表情符号以外的任何非ASCII”还是“英语标点符号”“还是别的什么?字母u会被认为是一个特殊字符吗?我的意思是除了表情符号以外的所有非ASCII字符。这可能会有帮助-@mag_zbc谢谢,但我不知道这个链接对我有什么帮助。我已经使用了扩展名来查看我的字符串是否包含表情符号。你说的“特殊字符”是什么意思?你的意思是“除表情符号外的任何非ASCII码”或“英语标点符号”还是其他什么?字母u会被认为是一个特殊的字符吗?我的意思是所有非ASCII字符,除了表情符号,它就像一个符咒!非常感谢你!真棒的家伙,它就像一个魅力!非常感谢你!