home *** CD-ROM | disk | FTP | other *** search
- <%
- '*******************************************************
- '* 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. *
- '* *
- '* 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 "<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="phone_format.asp" METHOD="get">
- Phone number to format: <INPUT TYPE="text" NAME="phone_number" VALUE="<%= strNumberToFormat %>">
- <INPUT type="submit" value="Submit">
- </FORM>
-
-