' 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 "<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!
' 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 %>
<TABLE BORDER="1"> <TR> <TD>Phone number before formatting:</TD> <TD><%= strNumberToFormat %></TD> </TR> <TR> <TD>Phone number after formatting:</TD> <TD> <% ' 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.descri