FormatPhoneNumber

Formats a given 10 digit number into a nice looking phone number


Public

Tested

My Own Work
Function FormatPhoneNumber(strNumber)
 Dim strInput ' String to hold our entered number
 Dim strTemp ' Temporary string to hold our working text
 Dim strCurrentChar ' Var for storing each character for eval.
 Dim I  ' Looping var

 ' Uppercase all characters for consistency
 strInput = UCase(strNumber)

 ' To be able to handle some pretty bad formatting we strip out all characters except for chars A to Z and digits 0 to 9 before proceeding. I left in the chars for stupid slogan
 ' numbers like 1-800-GET-CASH etc...
 For I = 1 To Len(strInput)
  strCurrentChar = Mid(strInput, I, 1)
  ' Numbers (0 to 9)
  If Asc("0") <= Asc(strCurrentChar) And Asc(strCurrentChar) <= Asc("9") Then
   strTemp = strTemp & strCurrentChar
  End If
  ' Upper Case Chars (A to Z)
  If Asc("A") <= Asc(strCurrentChar) And Asc(strCurrentChar) <= Asc("Z") Then
   strTemp = strTemp & strCurrentChar
  End If
 Next 'I

 ' Swap strTemp back to strInput for next set of validation
 ' I also clear strTemp just for good measure!
 strInput = strTemp
 strTemp = ""

 ' Remove leading 1 if applicable
 If Len(strInput) = 11 And Left(strInput, 1) = "1" Then
  strInput = Right(strInput, 10)
 End If

 ' Error catch to make sure strInput is proper length now that we've finished manipulating it.
 If Not Len(strInput) = 10 Then
  ' Handle errors as you see fit. This script raises a real error so you can handle it like any other runtime error, but you could also pass an error back via the function's return value or just display a message... your choice!
  Err.Raise 1, "FormatPhoneNumber function", _
   "The phone number to be formatted must be a valid 10 digit US phone number!"

  ' Two alternative error techniques!
  'Response.Write "<B>The phone number to be formatted must be a valid phone number!</B>"
  'Response.End

  ' Note if you use this you'll also need to check for this below so you don't overwrite it!
  'strTemp = "<B>The phone number to be formatted must be a valid phone number!</B>"
 End If

 ' If an error occurred then the rest of this won't get processed!

 ' Build the output string formatted to our liking!
 ' (xxx) xxx-xxxx
 strTemp = "(" ' "("
 strTemp = strTemp & Left(strInput, 3) ' Area code
 strTemp = strTemp & ") " ' ") "
 strTemp = strTemp & Mid(strInput, 4, 3) ' Exchange
 strTemp = strTemp & "-" ' "-"
 strTemp = strTemp & Right(strInput, 4) ' 4 digit part

 ' Set return value
 FormatPhoneNumber = strTemp
End Function

given strNumber of 8005551212 you get (800) 555-1212

Views 1699 Downloads 709

Classic ASP Texts + Strings
ANmarAmdeen
642
Attachments
Revisions

v1.0