用ASP实现号码转换
发表于:2007-06-30来源:作者:点击数:
标签:
% @#***** 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 ou
<%
@#***** 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 o
clearcase/" target="_blank" >ccurred 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>
原文转自:http://www.ltesting.net