27 lines
813 B
Swift
27 lines
813 B
Swift
//
|
|
// String.swift
|
|
// EmployeeDirectory
|
|
//
|
|
// Created by Matt Bruce on 3/4/25.
|
|
//
|
|
import Foundation
|
|
|
|
extension String {
|
|
/// Formats a string into a US phone number format (XXX-XXX-XXXX).
|
|
/// Non-numeric characters are removed, and formatting is applied based on the length of the string.
|
|
/// - Returns: A formatted phone number as a string.
|
|
internal func formatUSNumber() -> String {
|
|
let mask = "XXX-XXX-XXXX"
|
|
let digits = filter { $0.isNumber }
|
|
var index = digits.startIndex
|
|
return mask.reduce(into: "") { result, char in
|
|
if char == "X", index < digits.endIndex {
|
|
result.append(digits[index])
|
|
index = digits.index(after: index)
|
|
} else {
|
|
result.append(char)
|
|
}
|
|
}
|
|
}
|
|
}
|