标题标题  显示论坛会员列表名单  搜索论坛搜索  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.1709 seconds.

 
保养品
保养品, Skin Care
www.elady.tw
美材批发
美材, Cosmetic
www.elady.tw/beauty_org
保养品批发
名牌保养品、保养品批发
gb.perfume.com.tw/skincare
饰品批发
饰品、饰品批发
gb.perfume.com.tw/ornament