public/Format-PhoneNumber.ps1
function Format-USPhoneNumber { <# .SYNOPSIS Formats a phone number to the standard format (XXX) XXX-XXXX or +1 (XXX) XXX-XXXX. .DESCRIPTION Formats a phone number to a standard format. The function accepts a phone number in various formats and returns the phone number in the format (XXX) XXX-XXXX. The function also accepts a switch parameter to include the country code. .PARAMETER PhoneNumber The phone number to format. The phone number can be in the following formats: - 1234567890 - 123 456 7890 - 123-456-7890 - (123) 456-7890 - (123)-456-7890 - 123-456-7890 - 123.456.7890 .PARAMETER includeCountryCode A switch parameter to include the country code in the formatted phone number. .PARAMETER CountryCode The country code to include in the formatted phone number. The default value is 1. .EXAMPLE Format-USPhoneNumber -PhoneNumber "1234567890" -includeCountryCode Formats the phone number 1234567890 to (123) 456-7890 with the country code +1. .EXAMPLE Format-USPhoneNumber -PhoneNumber "123 456 7890" -includeCountryCode Formats the phone number 123 456 7890 to (123) 456-7890 with the country code +1. .EXAMPLE Format-USPhoneNumber -PhoneNumber "123-456-7890" -includeCountryCode Formats the phone number 123-456-7890 to (123) 456-7890 with the country code +1. .EXAMPLE Format-USPhoneNumber -PhoneNumber "(123) 456-7890" -includeCountryCode Formats the phone number (123) 456-7890 to (123) 456-7890 with the country code +1. .EXAMPLE Format-USPhoneNumber -PhoneNumber "(123)-456-7890" -includeCountryCode Formats the phone number (123)-456-7890 to (123) 456-7890 with the country code +1. .EXAMPLE Format-USPhoneNumber -PhoneNumber "123-456-7890" -includeCountryCode Formats the phone number 123-456-7890 to (123) 456-7890 with the country code +1. .EXAMPLE Format-USPhoneNumber -PhoneNumber "123.456.7890" -includeCountryCode Formats the phone number 123.456.7890 to (123) 456-7890 with the country code +1. .LINK #> param ( [parameter(Mandatory=$True)][string]$PhoneNumber, [parameter(Mandatory=$False)][switch]$includeCountryCode, [parameter(Mandatory=$False)][int]$CountrCode = 1 ) if ($PhoneNumber -match "^\d{10}$") { $formattedPhoneNumber = $PhoneNumber -replace '(\d{3})(\d{3})(\d{4})', '($1) $2-$3' if ($includeCountryCode) { $formattedPhoneNumber = "+$countrCode $formattedPhoneNumber" } Write-Output $formattedPhoneNumber } elseif ($PhoneNumber -match "^\d{3} \d{3} \d{4}$") { $formattedPhoneNumber = $PhoneNumber -replace '(\d{3}) (\d{3}) (\d{4})', '($1) $2-$3' if ($includeCountryCode) { $formattedPhoneNumber = "+$countrCode $formattedPhoneNumber" } Write-Output $formattedPhoneNumber } elseif ($PhoneNumber -match "^\d{3}-\d{3}-\d{4}$") { $formattedPhoneNumber = $PhoneNumber -replace '(\d{3})-(\d{3})-(\d{4})', '($1) $2-$3' if ($includeCountryCode) { $formattedPhoneNumber = "+$countrCode $formattedPhoneNumber" } Write-Output $formattedPhoneNumber } elseif ($PhoneNumber -match "^\(\d{3}\) \d{3}-\d{4}$") { $formattedPhoneNumber = $PhoneNumber -replace '\((\d{3})\) (\d{3})-(\d{4})', '($1) $2-$3' if ($includeCountryCode) { $formattedPhoneNumber = "+$countrCode $formattedPhoneNumber" } Write-Output $formattedPhoneNumber } elseif ($PhoneNumber -match "^\(\d{3}\)-\d{3}-\d{4}$") { $formattedPhoneNumber = $PhoneNumber -replace '\((\d{3})\)-(\d{3})-(\d{4})', '($1) $2-$3' if ($includeCountryCode) { $formattedPhoneNumber = "+$countrCode $formattedPhoneNumber" } Write-Output $formattedPhoneNumber } elseif ($PhoneNumber -match "^\d{3}-\d{3}-\d{4}$") { $formattedPhoneNumber = $PhoneNumber -replace '(\d{3})-(\d{3})-(\d{4})', '($1) $2-$3' if ($includeCountryCode) { $formattedPhoneNumber = "+$countrCode $formattedPhoneNumber" } Write-Output $formattedPhoneNumber } elseif ($PhoneNumber -match "^\d{3} \d{3} \d{4}$") { $formattedPhoneNumber = $PhoneNumber -replace '(\d{3}) (\d{3}) (\d{4})', '($1) $2-$3' if ($includeCountryCode) { $formattedPhoneNumber = "+$countrCode $formattedPhoneNumber" } Write-Output $formattedPhoneNumber } elseif ($PhoneNumber -match "^\d{3}\.\d{3}\.\d{4}$") { $formattedPhoneNumber = $PhoneNumber -replace '(\d{3})\.(\d{3})\.(\d{4})', '($1) $2-$3' if ($includeCountryCode) { $formattedPhoneNumber = "+$countrCode $formattedPhoneNumber" } Write-Output $formattedPhoneNumber } elseif ($PhoneNumber -match "^\d{3}\s\d{3}\s\d{4}$") { $formattedPhoneNumber = $PhoneNumber -replace '(\d{3})\s(\d{3})\s(\d{4})', '($1) $2-$3' } else { Write-Output "Invalid phone number format" } } |