標題標題  顯示論壇會員列表名單  搜索論壇搜索  HelpHelp
  注冊注冊  登入登入
ASP教學區
 DoReMe : ASP教學區
主題 話題: 第八章 VBScript 回復發表新主題
作者
貼子內容 << Prev Topic下一個主題 >>
oneni
Newbie
Newbie


加入: 2004/11月/24
Online Status: Offline
回復: 26
Posted: 2004/11月/24 9:47上午 | IP記錄 引用 oneni

格式化貨幣值

要顯示貨幣值,你可以使用函數FORMATCURRENCY()。如下例所示:

<%

ad_revenue=30000

%>

<%=FORMATCURRENCY(ad_revenue)%>

在這個例子中,先格式化了變量ad_revenue,然後把它輸出到瀏覽器。變量值具體以什麼方式顯示依賴與你計算機的區域設置 。當你使用英國(美國)區域設置時,貨幣值被格式化成這樣的形式:

$30,000.00

通過改變你的計算機的區域設置對話框中currency頁和number頁的設置,你可以對貨幣格式的許多方面加以控制。例如, 從currency頁中選擇一個新符號,可以改變貨幣符號。

你也可以為函數FORMATCURRENCY()提供額外的參數來改變貨幣格式。你可以控制的內容包括貨幣顯示的位數以及顯示負 數是否用括號等。要瞭解所有的參數及其數值,請參見附錄C,「快速VBScript參考」。

Back to Top 查看 oneni's 資料 搜索其他貼子 oneni 訪問 oneni's
 
oneni
Newbie
Newbie


加入: 2004/11月/24
Online Status: Offline
回復: 26
Posted: 2004/11月/24 9:48上午 | IP記錄 引用 oneni

格式化數字

VBScript有兩個用於格式化數字的負數。用函數FORMATNUMBER(),你可以指定小數點後的顯示位數,是否顯示前 導的零,顯示負數時是否使用空格,和是否使用分隔符等。下面是一些例子及其返回值:

<%=FORMATNUMBER(6665.8999)%>

6,665.90

<%=FORMATNUMBER(「6665.8999」)%>

6,665.90

<%=FORMATNUMBER(6665.8999,3)%>

6,665.900

<%=FORMATNUMBER(-6665.8999,3,-1,-1,0)%>

(6665.900)

注意第二個例子用了一個字符串,二不是數字。當一個字符串可以被解釋為一個數字時,你可以用該字符串作為函數FORMATNUM BER()的參數。如果該字符串不能被解釋為數字,則會返回錯誤。

最後一個例子用到了函數FORMATNUMBER()的所有參數:

第一個參數(-6665.8999)指定了要進行格式化的數字。

第二個參數(3)指定了小數點後顯示的位數。

第三個參數(-1)指定了是否顯示前導的零。

第四個參數(-1)指定是否對負數使用括號。

最後一個參數(0)指定是否顯示分隔符。

注意

許多VBScript函數使用三態常量。函數FORMATNUMBER()的第三,第四,第五個參數可以接受三態常量或它們的值 。下面的表列出了三態常量:

常量 值 描述

TristateTrue -1 True

TristateFalse 0 False

TristateUseDefault -2 使用區域設置

你也可以指定這些格式的某個特定屬性依賴於Windows控制面板中的區域設置。要瞭解更多的信息,可參見附錄C。

如果你需要格式化百分數,應使用函數FORMATPERCENT():

<%=FORMATPERCENT(12)%>

1,200.00%

<%=FORMATPERCENT(「12」)%>

1,200.00%

這個函數把它的第一個參數乘以100,並在結果後面追加一個百分號。函數FORMATPERCENT()也可以接受許多附加參數 ,以改變輸出格式。要瞭解更多的信息,請參見附錄C。

Back to Top 查看 oneni's 資料 搜索其他貼子 oneni 訪問 oneni's
 
oneni
Newbie
Newbie


加入: 2004/11月/24
Online Status: Offline
回復: 26
Posted: 2004/11月/24 9:48上午 | IP記錄 引用 oneni

使用數學運算符和函數

VBscript包括你期望一種編程語言應該有的所有數學運算符。你可以進行加,減,乘和除的運算。這裡是幾個例子和可能的返回 值:

Addition: <%=1+1%>

2

Subtraction: <%=45-23%>
22

Multiplication: <%=2*2%>

4

Division: <%=3/2%>

1.5

Integer Division: <%=3\2%>

1

Modulus: <%=3 MOD 2%>

1

Exponedtiation: <%=2^8%>

256

整除運算只返回整數。在這個例子中,表達式<%=3\2%>返回值是1,而表達式<%=3/2%>的返 回值是1.5。取模運算符,MOD,返回除法運算的餘數。例如,表達式<%=3 MOD 2 %>返回值是1。

VBsript還包括一批數學函數。這些函數包括四個三角函數:反正切函數ATN(),正玄函數SIN(),余玄函數COS() ,正切函數TAN()。數學函數還包括自然對數函數LOG(),平方根函數SQR(),和指數函數EXP()。

另外,VBscript有五個取捨函數。這些函數是ABS(),INT(),FIX(),ROUND(),和SGN()。下面是 一些例子及其返回值:

<%=ABS(-23.5)%>

23.5

<%=INT(-23.5)%>
-24

<%=FIX(-23.5)%>

-23

<%=ROUND(-23.555,1)%>

-23.6

<%=SGN(-23.5)%>
-1

函數ABS()返回一個絕對值。函數INT()四捨五入後最接近的整數。函數FIX()也返回最接近的整數,不過這個函數對複數 是向下捨入而不是向上捨入。函數ROUND()允許你指定捨入後小數部分的位數。最後,函數SGN()返回1,0,或-1,分別 對應其參數是正數,零,或複數。

還有一個操作數字的有用的函數。函數ISNUMERIC(),只有當它的參數表達式是一個數字是,返回 TRUE。這裡有一個如何使用此函數的例子:

<%=ISNUMERIC(「-1」%>

TRUE

<%=ISNUMERIC(1)%>
TRUE

<%=ISNUMERIC(DATE)%>
FALSE

注意第一個例子用字符串「1」作為參數。只要傳遞給該函數的參數可以被解釋為一個數字,該函數就返回TRUE。相反,參數「th ree」將返回FALSE。

Back to Top 查看 oneni's 資料 搜索其他貼子 oneni 訪問 oneni's
 
oneni
Newbie
Newbie


加入: 2004/11月/24
Online Status: Offline
回復: 26
Posted: 2004/11月/24 9:48上午 | IP記錄 引用 oneni

使用邏輯連接和運算符

VBscript包括許多比較運算符。這些運算符可以用來比較數字和字符串。下面是一些例子及返回值:

<%=1=1%>

TRUE

<%=」Apple」=」APPLE」%>

FALSE

<%=」Apple」=」Apple」%>

TRUE

<%=3<>4%>

TRUE

<%3>4%>

FALSE

<%=3<4%>

TRUE

<%=3<=4%>

TRUE

<%=3>=4%>

FALSE

等於運算符(=)測試兩個值是否相等。當用於字符串時,被比較的兩個字符串的所有字母要有相同長度。不等運算符(<> ;)測試兩個值是否不相等。當用於字符串時,這個運算符也要求長度相等。小於(<)和大於(>)運算符比較兩個表達 式的相互大小。小於等於預算符(<=)當其左邊的表達式小於或等於其右邊的表達式時返回TRUE。最後,大於等於預算符( >=)當其左邊的表達式大於或等於其右邊的表達式時返回TRUE。

VBscript還包括所有的邏輯連接符。你可以用值TRUE,FALSE,和NULL來代表語句的真值。你可以構造包含「非」 (NOT),「與」(AND),「異或」(XOR),「或」(OR),以及IMP和EQV的語句。

一個IMP表達式當其前一個真值是false,或其後一個真值是true時,表達式的真值是true。一個EQV表達式當前後兩 個真值都是false或都是true時,表達式的真值是true。這裡是一些例子及其返回值:

<%=TRUE AND FALSE%>

FALSE

<%=TURE OR FALSE%>

TRUE

<%=FALSE XOR FALSE%>

FALSE

<%=FALSE IMP TRUE%>

TRUE

<%=TRUE EQV FALSE%>

FALSE

當用作條件分支語句如IF...THEN,SELECT CASE,WHILE,和DO循環的一部分時,邏輯連接符特別有用。在下一節你將學習所有這些語句。

Back to Top 查看 oneni's 資料 搜索其他貼子 oneni 訪問 oneni's
 
oneni
Newbie
Newbie


加入: 2004/11月/24
Online Status: Offline
回復: 26
Posted: 2004/11月/24 9:49上午 | IP記錄 引用 oneni

用IF...THEN測試單個條件

VBscript最有用的語句之一是IF...THEN語句。下面的例子顯示了如何使用這種語句:

<%

if time > #5:00:00pm# then

Greeting=」Good Evening!」

end if

%>

這個語句在時間是下午五點之後的情況下,把值「Good Evening」分配給變量Greeting。(字符#用來界定日期或時間常量)。注意表達式END IF。表達式END IF指定了分支代碼塊的結束。你可以在END IF表達式之前放置多條語句,像這樣:

<%

if time >#5:00:00pm# then

Greeting=」Good Evening!」

Evening_Visitor=Evening_Visitor+1

end if

%>

這個例子中的兩個語句都只有在時間是下午五點以後的情況下才執行。

你也可以對一個分支使用ELSE表達式。跟在ELSE表達式後的語句只有條件的真值為false時才被執行。請看這個例子:

<%

if time > #5:00:00pm# then

Greeting=」Good Evening!」

else

Greeting=」Good some other time!」

end if

%>


你可以在ELSE語句後放置多個語句。因為一個條件要麼為TRUE,要麼為FALSE,因此THEN表達式後或ELSE表達式後 的語句只有一組可以被執行。

你可以進行分支嵌套,這通常是非常有用的。這裡有一個例子:

<%

if time > #5:00:00pm# then

if time < 10:00:00pm# then

Greeting=」Good Evening!」

else

Greeting=」Good Late Evening!」

end if

else

Greeting=」Good some other time!」

end if

%>

在這個例子中,如果是在晚上十點之前,則問候語是「Good Evening!」,如果時間晚於十點,則問候語是」Good Late Evening!」。如果不是在五點之後,則使用問候語「Good some other time!」。

如果在一個分支中,你只想執行一個語句,那麼你不需要使用END IF 表達式。這裡有兩個例子:

<%

if time < #5:00:00pm# then Greeting=」Good Bye!」

%>

<%

if time < #5:00:00pm# then Greeting=」Good Day!」 else Greeting=」Good Evening!」

%>

用SELECT CASE 測試多個條件

SELECT CASE語句於IF...THEN語句關係密切。IF...THEN語句只能允許你測試一個條件;SELECT CASE語句允許你一次測試多個條件,如下例所示:

<%

SELECT CASE Visitor_Name

CASE 「Bill Gates」

Greeting=」Welcome Bill Gates!」

CASE 「President Clinton」

Greeting=」Welcome President Clinton!」

CASE ELSE

Greeting=」Welcome Someone!」

END SELECT

%>

在這個例子中,變量Visitor_Name代表你站點訪問者的名字。如果該名字匹配某個條件,則相應的問候語被分配給變量Gr eeting。否則執行CASE ELSE表達式後面的語句。

CASE ELSE語句是可選的。如果你省去這個表達式,並且所有的CASE條件都沒有匹配,則不執行任何語句。

Back to Top 查看 oneni's 資料 搜索其他貼子 oneni 訪問 oneni's
 
oneni
Newbie
Newbie


加入: 2004/11月/24
Online Status: Offline
回復: 26
Posted: 2004/11月/24 9:49上午 | IP記錄 引用 oneni

用FOR循環執行重複操作

當你需要重複執行一組語句一定次數時,你可以使用一個FOR...NEXT循環,如下例所示:

<%

for i=1 to 500

%>

Hello Again!

<%

next

%>

在這個例子中,句子「Hello Again!」被在瀏覽器中打印500次。FOR語句和NEXT語句之間的任何語句都將被重複執行。甚至,像這個例子一樣,當循 環體內是HTML代碼時,它也將被重複執行。

通過使用關鍵字STEP,你可以構造反向的循環。考慮下面的例子:

<%

For i=500 to 1 step –1

%>

Hello Again!

<%

NEXT

%>

這個例子輸出與上一個例子完全相同的結果。但是,在這個例子中,FOR...LOOP循環從數字500開始,反向循環到1。

你可以在循環中使用不同的步長。在下面的例子中,變量i每次被增加10:

<%

for i=1 to 500 step 10

%>
<%=i%><br>

<%

next

%>


你可以用EXIT FOR語句從一個FOR...LOOP循環退出。假定你在遍歷一個數組以找到某個字符串表達式的匹配值。當你已經找到了一個匹配 時,你不需要繼續執行循環:

<%

dim myarray(10)

myarray(4)=」Running Shoes」

for i=0 to ubound(myarray)

if myarray(i)=」Running Shoes」 then exit for

next

%>

在這個例子中,如果數組中某個元素的值與表達式「Running Shoes」相匹配,則立即退出FOR...NEXT循環。變量i的值等於被匹配的元素的索引值。

FOR EACH...NEXT語句於FOR...NEXT語句關係密切。FOR EACH...NEXT語句只適用於對數組或集合的元素進行循環,如下面的例子所示:

<%

dim myarray(10)

myarray(4)=」Running Shoes」

for each i in myarray

if i=」Running Shoes」 then exit for

next

%>

這個例子中的腳本與上一個例子完成相同的任務。當字符串表達式得到匹配時,立即退出循環。但是,當腳本完成時,變量i的值等於「 Running Shoes」。

與FOR...LOOP循環中不同,這裡的變量i不是作為一個計數器。而是代表循環所操作的數組或集合的每個成員的值。如果你想 顯示一個數組的所有元素的值,你可以這樣做:

<%

for each i in myarry

%>

<%=i%>

<%

next

%>

用WHILE和DO執行條件循環

當以指定的次數執行一組語句或顯示HTML代碼塊時,FOR...LOOP循環是有用的。但是,在許多情況下,當一個循環執行之 前,你並不知道它需要執行的次數。在這些情況下,你需要使用WHILE循環或DO循環。

WHILE循環當某個條件的真值保持為TRUE時,重複執行一組語句。考慮如下的例子:

<%
TheFuture=DATEADD(「s」,15,TIME)

WHILE TIME<TheFuture

%>

<%=TIME%> : Waiting For The Future... <BR>

<%
WEND

%>
<B> The Future』s Here!</B>

在這個例子中,處在WHILE和WEND之間的所有語句被重複執行,直到時間過去15秒。WHILE語句測試當時時間是否小於存 儲在變量TheFuture中的時間。一旦當前時間大於或等於TheFuture,則退出循環。

DO循環與WHILE循環密切相關,但是更複雜。用DO循環,你可以構造當某個條件保持為真時重複執行的循環,也可以構造重複執 行直到某個條件為真的循環。這裡有一個例子:

<%

do while sentence<>」Hello There!」

sentence=」Hello There!」

%>

<%=sentence%>

<%

loop

%>

在這個例子中,當變量sentence的值不等於字符串」Hello There!」時,處在DO語句和LOOP語句之間的語句被重複執行。因為在循環體你變量sentence被賦了值」Hello There!」,WHILE條件只在第一次迭代時為TRUE。換句話說,這個DO循環體內的語句只執行一次,字符串」Hello There!」只被在屏幕上打印一次。

在這個例子中,當某個條件為真時則執行循環。你也可以構造一個一直執行直到某個條件為真的循環,如下例所示:

<%
do until sentence=」Hello There!」

sentence=」Hello There!」

%>

<%=sentence%>

<%

loop

%>

這個腳本於上一個完成同樣的功能。DO循環只執行一次。一旦變量sentence的值等於」Hello There!」就不再執行循環。這個循環只執行一次,字符串」Hello There!」只在屏幕上打印一次。

如果你願意,你可以把表達式WHILE或UNTIL轉移到循環的底部,像這樣:

<%

do

sentence=」Hello There!」

%>

<%

loop until sentence=」Hello There!」

%>

使用DO循環時,你可以用EXIT DO語句退出循環。考慮如下的循環:

<%

do until 1<>1

exclaim=exclaim&」!」

if exclaim=」!!!!!」 then exit do

loop

%>

<%=exclaim%>

在這個例子中,DO循環一直執行到1等於1,換句話說,它永遠循環下去。然而,在每一次循環中,變量exclaim被追加一個感 歎號。當變量exclaim等於字符串」!!!!!」時,exit do語句強制退出循環。

當用WHILE或DO構造循環時,小心不要構造死循環。如果你偶爾構造了一個死循環,不要擔心。經過一定時間之後(通常是90秒 ),腳本會自動結束。

注意

你可以使用Sever對象的ScriptTimeOut屬性來控制一個腳本執行多長時間後就算超時。請參見第14章,「使用單個 Active Sever Page。」

Back to Top 查看 oneni's 資料 搜索其他貼子 oneni 訪問 oneni's
 
oneni
Newbie
Newbie


加入: 2004/11月/24
Online Status: Offline
回復: 26
Posted: 2004/11月/24 9:50上午 | IP記錄 引用 oneni

使用字符串函數

VBscript包括大量用於操作字符串的函數。當你需要操作來自HTML表單或數據庫的數據時,你會發現這些函數非常有用。你 可以用這些函數來拼接字符串,抽取字符串,搜索字符串,和比較字符串。

拼接字符串

當你需要用短的字符串構造長字符串時,要用到拼接運算符(&)。下面的例子用短的表達式構造了一個句子:

<%

exp1=」The house 」

exp2=」is on a 」

exp3=」hill.」

sentence=exp1&exp2&exp3

%>


你也可以用加號(+)來拼接字符串。但是,這種方法不值得推薦。與&運算符不同,+運算符並不保證返回一個字符串。考慮 如下的例子:

<%

myvar=1

%>

<%=」The value of myvar is:」&myvar%>

<%=」The value of myvar ia:」+myvar%>

當用拼接運算符&來輸出myvar的值時,語句執行正常。運算符&自動把變量myvar的值轉換為字符串。但是 ,當使用運算符+時,將出現錯誤,因為這個語句實際上會試圖將myvar的值加到字符串表達式上。

如果你有一個字符數組,你可以用函數JOIN()連接數組中所有的字符串。這裡有一個例子:

<%

dim myarray(2)

myarray(0)=」The house 」

myarray(1)=」is on a 」

myarray(2)=」hill.」

sentence=JOIN(myarray)

%>

當這段腳本執行後,變量sentence的值等於數組myarray中所有的字符串連接在一起。要使用這個函數,myarray 必須是一個一維數組(一個列表)。你可以給該函數提供一個可選的第二參數,作為與空格不同的分隔符:

sentence=JOIN(myarray,」/」)

在這個例子中,函數JOIN()的返回值是The house/is on a/hill.

如果你需要加入一些空格,你可以使用函數SPACE(),像這樣:

sentence=」Over」&SPACE(20)&」There.」

在這個例子中,變量sentence的值等於被20個空格隔開的Over和There。但是,你應當注意,由於HTML忽略多餘 的空格,這個函數實際上不會向屏幕上輸出附加的空格。如果你確實需要用這個函數構造附加的空格,你必須把輸出放在HTML的&l t;PRE>標籤之內,像這樣:

<%

sentence=」Over」&SPACE(20)&」There.」

%>

<PRE><%=sentence%></PRE>

這樣做的缺點是HTML將用固定寬度的字體顯示<PRE>標籤內的所有內容(對大多數瀏覽器,用Courier字體 )。這通常是不受人歡迎的。代替使用函數SPACE(),考慮使用這樣的腳本:

<%

sentence=」Over」

for i=1 to 20

sentence=sentence&」&nbsp;」

next

sentence=sentence&」There.」

%>

<%=sentence%>


在這個例子中,特殊的HTML代碼,不間斷空格(&nbsp;),被用來構造空格。在老的瀏覽器中,這樣作是不行的。代 碼&nbsp;是HTML中與真正的空格字符最接近的東西。

最後,如果你想以任何次數重複任何單個字符,你可以使用函數STRING(),如下例所示:

<%

sentence=STRING(500,」!」)

%>

<%=sentence%>

這段腳本在屏幕上打印500個感歎號。你可以對任何長於一個字符的字符串使用這個函數。如果你需要重複一個更長的表達式,可以使 用循環。

Back to Top 查看 oneni's 資料 搜索其他貼子 oneni 訪問 oneni's
 
oneni
Newbie
Newbie


加入: 2004/11月/24
Online Status: Offline
回復: 26
Posted: 2004/11月/24 9:50上午 | IP記錄 引用 oneni

抽取字符串

VBscript包括許多函數,用來從一個字符串中抽取其他字符串。用函數RIGHT(),LEFT(),和MID(),你可以 抽取一個字符串的右邊,左邊,和中間部分。這裡是一些例子及其返回值:

<%

sentence=」Once upon a time,there were three bears.」

%>

<%=left(sentence,16)%>

once upon a time

<%=right(sentence,23)%>

there were three bears.

<%=mid(sentence,13,4)%>

time

函數LEFT()返回從字符串的左側開始數起的一串字符。函數RIGHT()返回從字符串的右側開始數起的一串字符。最後,函數 MID()返回從左數某個字符開始的一定長度的一串字符;如果你忽略函數MID()的第三個參數,則將返回從左數某個字符開始的 後面所有字符。

使用這些函數時,知道一個字符串的長度經常是有用的。要確定一個字符串的長度,你可以使用函數LEN()。下面的例子用函數LE N()抽取了一個字符串的左邊一半:


<%

mystring=」Once upon a time,there were three bears.」

%>
<%=left(mystring,LEN(mystring)/2%>

解釋從HTML表單中收集到的數據時,你經常會發現刪去收集到的數據中的空格是必要的。有三個函數使你可以做到這一點。函數RT RIM(),LTRIM()和TRIM()從一個字符串的右邊,左邊,或兩側刪去空格。這裡有一些例子:

<%

sentence=」 I have extra spaces 「

sentence=LTRIM(sentence)

sentence=RTRIM(sentence)

sentence=TRIM(sentence)

%>

這些函數刪去一個字符串邊上的空格? ? 不管出現多少空格。如果你需要刪除一個字符串內部的空格,可以使用函數REPLACE()。(此處不加詳述)

字符串函數SPLIT()把一個字符串分割成多個部分。分割操作的結果被放在一個數組中。考慮如下的例子:

<%

myarray=SPLIT(forminput)

for z=0 to ubound(myarray)

if myarray(z)=」You」 then myarray(z)=」I」

next

newoutput=JOIN(myarray)

%>

<%=newoutput%>

這段腳本取出保存在變量forminput中的任何字符串並分割之,結果保存在數組myarray中。(你不需要聲明這個數組, 函數SPLIT()會創建它。)然後,每當單詞You出現在數組中時,就將其替換為I。最後,用JOIN()函數將數組重新拼接 並輸出到瀏覽器屏幕。

如果你站點的一個訪問者在一個HTML表單中輸入了一個句子:You are a computer,該值被保存到變量forminput中,則句子I are a computer將被返回到瀏覽器屏幕上。使用函數SPLIT(),你可以很容易地操作輸入HTML表單中的信息。

缺省情況下,函數SPLIT()通過在空格處截斷來分割一個字符串。然而,你可以為該函數提供第二個參數,根據其他的字符來分割 字符串。缺省情況下,該函數能把一個字符串分割成多少部分,就分割成多少部分。但是你可以提供第三個參數來限制該函數返回的子字 符串的數目。下面的這個例子使用了這兩個附加參數:

<%

myarray=SPLIT(「Once upon a time,there were three bears.」,」,」,2)

%>


在這個例子中,字符串被分割成兩個。逗號左邊的子字符串被保存在數組的第一個元素中;逗號右邊的子字符串被保存在數組的第二個元 素中。

最後,函數FILTER()使你可以過濾一個數組。假定你想從一個句子中過濾掉不包含字母t的每一個詞。用函數FILTER() ,你可以通過如下的腳本做到這一點:

<%

myarray=SPLIT(「Once upon a time,there were three bears.」)

myarray=FILTER(myarray,」t」)

%>

<%=JOIN(myarray)%>

當這個腳本執行後,將顯示字符串time,there three。函數FILTER()過濾掉所有不匹配字符串」t」的數組元素。

你也可以用函數FILTER()過濾掉匹配某一特定字符串的所有數組元素。例如,下面的腳本返回字符串Once upon a were bears.

<%

myarray=SPLIT(「Once upon a time,there were three bears.」)

myarray=FILTER(myarray,」t」,false)

%>

<%=JOIN(myarray)%>

Back to Top 查看 oneni's 資料 搜索其他貼子 oneni 訪問 oneni's
 
oneni
Newbie
Newbie


加入: 2004/11月/24
Online Status: Offline
回復: 26
Posted: 2004/11月/24 9:50上午 | IP記錄 引用 oneni

替換字符串

函數REPLACE()是最有用的字符串函數之一。你可以使用REPLACE()函數,以一個字符串取代另一個字符串的一部分。 這裡有一個例子:

<%

newuser=」Edwin c. Orr」

mystring=」Thank you,someone,for registering at our web site!」

mystring=REPLACE(mystring,」someone」,newuser)

%>

<%=mystring%>

在這個例子中,函數REPLACE()用來以一個站點訪問者的名字替代表達式」someone」。該函數的返回值為」Thank you,Edwin c. Orr,for registering at our web site!」

缺省情況下,函數REPLACE()將被替換的字符串出現的所有地方都進行替換。例如,下面的腳本刪除一個字符串中的所有空格, 不管這個字符串中有多少空格:

<%

mystring=REPLACE(mystring,」 「,」」)

%>

但是,通過指定一個起始位置和一個代表字符串替換次數的數字,你可以限制函數REPLACE()進行替換的字符串數目。考慮如下 的例子:

<%

mystring=」Welcome someone,your name is someone.」

mystring=REPLACE(mystring,」someone」,」Edwin c. Orr」,17,1)

%>

這個例子中的函數REPLACE()返回字符串」your name is Edwin c. Orr.」。第二個參數指定字符串從左數17個字符處被替換。第三個參數指定只有第一次出現時進行替換。如果表達式」someo ne」在後面又一次出現,則該表達式不會被替換。

缺省情況下,函數REPLACE()是區分大小寫的。在許多情況下,這並不是你所希望的。為了強制函數REPLACE()進行不 區分大小寫的匹配,你可以給該函數提供第六個參數,像這樣:

<%

mystring=」Welcome SoMeoNe,your name is SomeOne.」

mystring=REPLACE(mystring,」someone」,」Edwin c. Orr」,1,-1,1)

%>

在這個例子中,第四個參數(值為1),指定從第一個字符開始搜索該字符串,第五個參數(值為-1)指定每一個子串都要被替換,第 六個參數(值為1)指定字符串的比較不區分大小寫。

有時候由於一些奇怪的原因,你想反寫一個字符串,有一個特殊的函數恰恰用於此目的。函數STRREVERSE()顛倒一個字符串 的字符順序。這裡有一個例子及其返回值:

<%=STRREVERSE(「Once upon a time,there were three bears.」)%>

.sraeb eerht erew ereht ,emit a nopu ecnO

最後,如果你需要將一個字符串轉換成大寫或小寫的形式,你可以使用函數UCASE()和LCASE()。考慮如下的例子:

<%=UCASE(「Once upon a time」)%>

ONCE UPON A TIME

<%=LCASE(「Once upon a time」)%>

once upon a time

Back to Top 查看 oneni's 資料 搜索其他貼子 oneni 訪問 oneni's
 
oneni
Newbie
Newbie


加入: 2004/11月/24
Online Status: Offline
回復: 26
Posted: 2004/11月/24 9:51上午 | IP記錄 引用 oneni

搜索字符串

如果你需要檢測一個字符串中是否包含另一個字符串,你可以使用函數INSTR()。函數INSTR()返回一個字符串中所包含的 另一個字符串所在的位置。這裡有這個函數的一些例子及其返回值:

<%=instr(「Once upon a time」,」time」)%>

13

<%=instr(「Once upon a time」,」TIME」)%>

0

缺省情況下,函數INSTR()從一個字符串的第一個字符開始搜索匹配。但是,你可以提供一個可選參數,用來指定開始搜索匹配的 字符位置,如下例所示:

<%=INSTR(2,」Once upon a time」,」Once」)%>

這個例子中的函數INSTR()的返回值將是0。雖然目標字符串中出現了字符串Once,但它不是符合條件的匹配,因為比較是從 第二個字符開始的。

注意在缺省情況下比較是區分大小寫的。在下面的例子中,字符串time不是符合條件的匹配,因為它是小寫的:

<%=INSTR(「Once upon a time」,」TIME」)%>

0

通過使用一個可選參數,你可以強制函數INSTR()忽略大小寫,例如:

<%=INSTR(1,」Once upon a time」,」TIME」,1)%>

函數中第四個參數指定進行字符串匹配時不區分大小寫。當你使用這個參數時,你必須同提供其他的所有參數,包括通常是可選參數的起 始位置參數。否則,該函數會被混淆。

函數INSTR()返回相對於字符串左邊的第一個匹配。另一個函數,INSTRREV(),從字符串的右邊開始進行匹配。為了區 分這兩個函數之間的差別,請看下面的兩個例子及其返回值:

<%=INSTR(「Once upon a time」,」n」)%>

2

<%=INSRRREV(「Once upon a time」,」n」)%>

9

注意,兩個函數的返回值都是從字符串左邊數的值? ? 函數INSTRREV()的返回值是9而不是8。但是函數INSTR()匹配一個字符串的第一次出現,從字符串的左邊開始搜索, 而函數INSTRREV()匹配一個字符串的第一次出現是從字符串的右邊開始搜索。

Back to Top 查看 oneni's 資料 搜索其他貼子 oneni 訪問 oneni's
 

<< 上一頁 頁 of 3 下一頁 >>
  回復發表新主題
顯示可打印的頁面 顯示可打印的頁面

論壇跳轉
不能 張貼新論題在這個討論版
不能 回應論題在這個討論版
不能 刪除你的發言在這個討論版
不能 編輯你的發言在這個討論版
不能 新增投票標題在這個討論版
不能 在這個討論版投票

Edit by doreme Forums version 2004
Welcome ©2001-2004 doreme Guide

This page was generated in 0.2344 seconds.

 
保養品
保養品, Skin Care
www.elady.tw
美材批發
美材, Cosmetic
www.elady.tw/beauty_org
保養品批發
名牌保養品、保養品批發
gb.perfume.com.tw/skincare
飾品批發
飾品、飾品批發
gb.perfume.com.tw/ornament