<% '******************************************************* '* ASP 101 Sample Code - http://www.asp101.com/ * '* * '* This code is made available as a service to our * '* visitors and is provided strictly for the * '* purpose of illustration. * '* * '* http://www.asp101.com/samples/license.asp * '* * '* Please direct all inquiries to webmaster@asp101.com * '******************************************************* %> <% '***** BEGIN FUNCTION AREA ***** ' Formats a given 10 digit number into a nice looking phone number ' Example: given strNumber of 8005551212 you get (800) 555-1212 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 "The phone number to be formatted must be a valid phone number!" 'Response.End ' Note if you use this you'll also need to check for ' this below so you don't overwrite it! 'strTemp = "The phone number to be formatted must be a valid phone number!" 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 '***** END FUNCTION AREA ***** %> <%' Runtime Code Dim strNumberToFormat ' The phone number we pass to the function ' Retrieve the requested number or set it to the default If Request.QueryString("phone_number") <> "" Then strNumberToFormat = Request.QueryString("phone_number") Else strNumberToFormat = "1-800-555-1212" End If ' We need to turn this on if we want to trap errors. ' Otherwise the script would generate an error if the input ' number wasn't correct. On Error Resume Next %>
Phone number before formatting: <%= strNumberToFormat %>
Phone number after formatting: <% ' Call the function and output the results Response.Write FormatPhoneNumber(strNumberToFormat) ' Check for an error and display the message if one occurred If Err.number Then Response.Write Err.description %>
Phone number to format: