如何从其他CharacterSet创建CharacterSet?

时间:2017-03-15 08:25:49

标签: swift

let firstSet = CharacterSet(charactersIn: "-()")
let secondSet = CharacterSet.whitespaces

我需要将+48 (23) 899899 098替换为+4823899899098

let output = "+48 (23) 899899 098".components(separatedBy: firstSet).joined(separator: "")

但在这里我需要使用两个CharacterSets。我如何将它们合并为一个?

3 个答案:

答案 0 :(得分:4)

您可以使用union(_:)

let output = "+48 (23) 899899 098".components(separatedBy: firstSet.union(secondSet)).joined()

答案 1 :(得分:1)

或者使用正则表达式

let output = "+48 (23) 899899 098"
let trimmedOutput = output.replacingOccurrences(of: "[^0-9+]", with: "", options: .regularExpression)
// -> +4823899899098"

答案 2 :(得分:0)

您可以使用功能进行手机格式化,因此可以通过应用

重复使用
//removes "(", ")", "-", " " etc. and adds "+" for region code format 
extension String {
    func phoneToString() -> String {
        var value = "+"
        for character in self.characters {
            if Int(String(character)) != nil {
                value = value + String(character)
            }
        }
        return value
    }
}

let phoneWithoutSpaces = "+48 (23) 899899 098".phoneToString()