用ASP实现号码转换
点击次数:28 次 发布日期:2008-11-26 16:17:08 作者:源代码网
|
"***** 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> 源代码网供稿. |
