How mobile number to be displayed as (XXX)-(XXX)-XXXX as the user types?

Code given below will help you to format mobile number like (XXX)-(XXX)-XXXX

you just need to call this method in your shouldChangeCharactersIn method like this,

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {

// phonenumber write in specific formate
if textField == yourTextfield{
return setPhonenumberFormate(textField, shouldChangeCharactersIn: range, replacementString: string)
}
return true
}
 
public func setPhonenumberFormate(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String)-> Bool{ let length: Int = Int(getLength(mobileNumber: textField.text!)) if length ==10 { if range.length == 0 { return false } } if length == 3 { let num: String = formatNumber(mobileNumber: textField.text!) textField.text = "(\(num)) " if range.length > 0 { textField.text = "\(num.substring(to: num.index(num.startIndex, offsetBy: 3)))" } } else if length == 6 { let num: String = formatNumber(mobileNumber: textField.text!) textField.text = "(\(num.substring(to: num.index(num.startIndex, offsetBy: 3)))) \(num.substring(from: num.index(num.startIndex, offsetBy: 3)))-" if range.length > 0 { textField.text = "(\(num.substring(to: num.index(num.startIndex, offsetBy: 3)))) \(num.substring(from: num.index(num.startIndex, offsetBy: 3)))" } } return true } func formatNumber(mobileNumber: String) -> String { var number : String! number = mobileNumber.replacingOccurrences(of: "(", with: "") number = number.replacingOccurrences(of: ")", with: "") number = number.replacingOccurrences(of: " ", with: "") number = number.replacingOccurrences(of: "-", with: "") number = number.replacingOccurrences(of: "+", with: "") let length: Int = Int(number.characters.count) if length > 10 { number = mobileNumber.substring(from: mobileNumber.index(number.startIndex, offsetBy: length - 10)) } return number } func getLength(mobileNumber: String) -> Int { var number : String! number = mobileNumber.replacingOccurrences(of: "(", with: "") number = number.replacingOccurrences(of: ")", with: "") number = number.replacingOccurrences(of: " ", with: "") number = number.replacingOccurrences(of: "-", with: "") number = number.replacingOccurrences(of: "+", with: "") let length: Int = Int(number.characters.count) return length }

You may also like

Leave a Reply