<% '***** 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 "<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
'***** 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.description %> </TD> </TR> </TABLE>
<FORM ACTION="39.asp" METHOD="get"> Phone number to format: <INPUT TYPE="text" NAME="phone_number" VALUE="<%= strNumberToFormat %>"> <INPUT type="submit" value="Submit"> </FORM>
|