用ASP实现号码转换

王朝asp·作者佚名  2006-12-16
窄屏简体版  字體: |||超大  

<%

“***** 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>

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航