abstract to String extension method
Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
This commit is contained in:
parent
10f4f1db11
commit
6661e60333
@ -71,7 +71,7 @@ extension InputField {
|
|||||||
let rawNumber = newText.filter { $0.isNumber }
|
let rawNumber = newText.filter { $0.isNumber }
|
||||||
|
|
||||||
// Format the number with dashes
|
// Format the number with dashes
|
||||||
let formattedNumber = formatUSNumber(rawNumber)
|
let formattedNumber = rawNumber.formatUSNumber()
|
||||||
|
|
||||||
// Set the formatted text
|
// Set the formatted text
|
||||||
textField.text = formattedNumber
|
textField.text = formattedNumber
|
||||||
@ -93,44 +93,45 @@ extension InputField {
|
|||||||
|
|
||||||
override func textFieldDidEndEditing(_ inputField: InputField, textField: UITextField) {
|
override func textFieldDidEndEditing(_ inputField: InputField, textField: UITextField) {
|
||||||
if let text = inputField.text {
|
if let text = inputField.text {
|
||||||
let rawNumber = text.filter { $0.isNumber }
|
textField.text = text.formatUSNumber()
|
||||||
textField.text = formatUSNumber(rawNumber)
|
|
||||||
value = textField.text
|
value = textField.text
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func formatUSNumber(_ number: String) -> String {
|
|
||||||
// Format the number in the style XXX-XXX-XXXX
|
|
||||||
let areaCodeLength = 3
|
|
||||||
let centralOfficeCodeLength = 3
|
|
||||||
let lineNumberLength = 4
|
|
||||||
|
|
||||||
var formattedNumber = ""
|
|
||||||
|
|
||||||
if number.count > 0 {
|
|
||||||
formattedNumber.append(contentsOf: number.prefix(areaCodeLength))
|
|
||||||
}
|
|
||||||
|
|
||||||
if number.count > areaCodeLength {
|
|
||||||
let startIndex = number.index(number.startIndex, offsetBy: areaCodeLength)
|
|
||||||
let endIndex = number.index(startIndex, offsetBy: min(centralOfficeCodeLength, number.count - areaCodeLength))
|
|
||||||
let centralOfficeCode = number[startIndex..<endIndex]
|
|
||||||
formattedNumber.append("-")
|
|
||||||
formattedNumber.append(contentsOf: centralOfficeCode)
|
|
||||||
}
|
|
||||||
|
|
||||||
if number.count > areaCodeLength + centralOfficeCodeLength {
|
|
||||||
let startIndex = number.index(number.startIndex, offsetBy: areaCodeLength + centralOfficeCodeLength)
|
|
||||||
let endIndex = number.index(startIndex, offsetBy: min(lineNumberLength, number.count - areaCodeLength - centralOfficeCodeLength))
|
|
||||||
let lineNumber = number[startIndex..<endIndex]
|
|
||||||
formattedNumber.append("-")
|
|
||||||
formattedNumber.append(contentsOf: lineNumber)
|
|
||||||
}
|
|
||||||
|
|
||||||
return formattedNumber
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extension String {
|
||||||
|
public func formatUSNumber() -> String {
|
||||||
|
// Format the number in the style XXX-XXX-XXXX
|
||||||
|
let areaCodeLength = 3
|
||||||
|
let centralOfficeCodeLength = 3
|
||||||
|
let lineNumberLength = 4
|
||||||
|
|
||||||
|
var formattedNumber = ""
|
||||||
|
let number = filter { $0.isNumber }
|
||||||
|
|
||||||
|
if number.count > 0 {
|
||||||
|
formattedNumber.append(contentsOf: number.prefix(areaCodeLength))
|
||||||
|
}
|
||||||
|
|
||||||
|
if number.count > areaCodeLength {
|
||||||
|
let startIndex = number.index(number.startIndex, offsetBy: areaCodeLength)
|
||||||
|
let endIndex = number.index(startIndex, offsetBy: min(centralOfficeCodeLength, number.count - areaCodeLength))
|
||||||
|
let centralOfficeCode = number[startIndex..<endIndex]
|
||||||
|
formattedNumber.append("-")
|
||||||
|
formattedNumber.append(contentsOf: centralOfficeCode)
|
||||||
|
}
|
||||||
|
|
||||||
|
if number.count > areaCodeLength + centralOfficeCodeLength {
|
||||||
|
let startIndex = number.index(number.startIndex, offsetBy: areaCodeLength + centralOfficeCodeLength)
|
||||||
|
let endIndex = number.index(startIndex, offsetBy: min(lineNumberLength, number.count - areaCodeLength - centralOfficeCodeLength))
|
||||||
|
let lineNumber = number[startIndex..<endIndex]
|
||||||
|
formattedNumber.append("-")
|
||||||
|
formattedNumber.append(contentsOf: lineNumber)
|
||||||
|
}
|
||||||
|
|
||||||
|
return formattedNumber
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user