Formatting Phone number in Swift

前端 未结 12 1886
天命终不由人
天命终不由人 2020-12-02 09:36

I\'m formatting my textfiled text once the user start typing the phone number into this format type 0 (555) 444 66 77 and it is working fine but once I get the

12条回答
  •  清歌不尽
    2020-12-02 09:57

    This is the extension which will full fill your requirement:

     extension String {
     func convertToInternationalFormat() -> String {
        let isMoreThanTenDigit = self.count > 10
        _ = self.startIndex
        var newstr = ""
        if isMoreThanTenDigit {
            newstr = "\(self.dropFirst(self.count - 10))"
        }
        else if self.count == 10{
            newstr = "\(self)"
        }
        else {
            return "number has only \(self.count) digits"
        }
        if  newstr.count == 10 {
            let internationalString = "(\(newstr.dropLast(7))) \(newstr.dropLast(4).dropFirst(3)) \(newstr.dropFirst(6).dropLast(2)) \(newstr.dropFirst(8))"
            newstr = internationalString
        }
        return newstr
     }
     }
    
    INPUT :
    var str1 = "9253248954"
    var str2 = "+19253248954"
    var str3 = "19253248954"
    
    OUTPUT :
    str1.convertToInternationalFormat() // "(925) 324 89 54"
    str2.convertToInternationalFormat() // "(925) 324 89 54"
    str3.convertToInternationalFormat() // "(925) 324 89 54"
    

提交回复
热议问题