ASP 101 - Active Server Pages 101 - Web04
The Place ASP Developers Go!

Please visit our partners

Windows Technology Windows Technology
15 Seconds
ASP 101
ASP Wire
VB Forums
VB Wire
internet.commerce internet.commerce
Partners & Affiliates

ASP 101 is an site
ASP 101 is an site
Internet News
Small Business
Personal Technology

Corporate Info
Tech Jobs
E-mail Offers

ASP 101 News Flash ASP 101 News Flash

ASP Source Code:
' 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>"
		' 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")
	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
		<TD>Phone number before formatting:</TD>
		<TD><%= strNumberToFormat %></TD>
		<TD>Phone number after formatting:</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
<FORM ACTION="phone_format.asp" METHOD="get">
	Phone number to format: <INPUT TYPE="text" NAME="phone_number" VALUE="<%= strNumberToFormat %>">
	<INPUT type="submit" value="Submit">

Back the the Sample Output

Back to the Sample Index

Home |  News |  Samples |  Articles |  Lessons |  Resources |  Forum |  Links |  Search |  Feedback
The Network for Technology Professionals



Legal Notices, Licensing, Permissions, Privacy Policy.
Advertise | Newsletters | E-mail Offers