标签内的所有内容(对大多数浏览器,用Courier字体)。这通常是不受人欢迎的。
代替使用函数SPACE(),考虑使用这样的脚本:
<%
sentence=”Over”
fori=1to20
sentence=sentence&”
”
next
sentence=sentence&”There.”
%>
<%=sentence%>
在这个例子中,特殊的HTML代码,不间断空格(),被用来构造空格。
在老的浏览器中,这样作是不行的。
代码是HTML中与真正的空格字符最接近的东西。
最后,如果你想以任何次数重复任何单个字符,你可以使用函数STRING(),如下例所示:
<%
sentence=STRING(500,”!
”)
%>
<%=sentence%>
这段脚本在屏幕上打印500个感叹号。
你可以对任何长于一个字符的字符串使用这个函数。
如果你需要重复一个更长的表达式,可以使用循环。
抽取字符串
VBscript包括许多函数,用来从一个字符串中抽取其他字符串。
用函数RIGHT(),LEFT(),和MID(),你可以抽取一个字符串的右边,左边,和中间部分。
这里是一些例子及其返回值:
<%
sentence=”Onceuponatime,therewerethreebears.”
%>
<%=left(sentence,16)%>
onceuponatime
<%=right(sentence,23)%>
therewerethreebears.
<%=mid(sentence,13,4)%>
time
函数LEFT()返回从字符串的左侧开始数起的一串字符。
函数RIGHT()返回从字符串的右侧开始数起的一串字符。
最后,函数MID()返回从左数某个字符开始的一定长度的一串字符;如果你忽略函数MID()的第三个参数,则将返回从左数某个字符开始的后面所有字符。
使用这些函数时,知道一个字符串的长度经常是有用的。
要确定一个字符串的长度,你可以使用函数LEN()。
下面的例子用函数LEN()抽取了一个字符串的左边一半:
<%
mystring=”Onceuponatime,therewerethreebears.”
%>
<%=left(mystring,LEN(mystring)/2%>
解释从HTML表单中收集到的数据时,你经常会发现删去收集到的数据中的空格是必要的。
有三个函数使你可以做到这一点。
函数RTRIM(),LTRIM()和TRIM()从一个字符串的右边,左边,或两侧删去空格。
这里有一些例子:
<%
sentence=”Ihaveextraspaces“
sentence=LTRIM(sentence)
sentence=RTRIM(sentence)
sentence=TRIM(sentence)
%>
这些函数删去一个字符串边上的空格¾¾不管出现多少空格。
如果你需要删除一个字符串内部的空格,可以使用函数REPLACE()。
(此处不加详述)
字符串函数SPLIT()把一个字符串分割成多个部分。
分割操作的结果被放在一个数组中。
考虑如下的例子:
<%
myarray=SPLIT(forminput)
forz=0toubound(myarray)
ifmyarray(z)=”You”thenmyarray(z)=”I”
next
newoutput=JOIN(myarray)
%>
<%=newoutput%>
这段脚本取出保存在变量forminput中的任何字符串并分割之,结果保存在数组myarray中。
(你不需要声明这个数组,函数SPLIT()会创建它。
)然后,每当单词You出现在数组中时,就将其替换为I。
最后,用JOIN()函数将数组重新拼接并输出到浏览器屏幕。
如果你站点的一个访问者在一个HTML表单中输入了一个句子:
Youareacomputer,该值被保存到变量forminput中,则句子Iareacomputer将被返回到浏览器屏幕上。
使用函数SPLIT(),你可以很容易地操作输入HTML表单中的信息。
缺省情况下,函数SPLIT()通过在空格处截断来分割一个字符串。
然而,你可以为该函数提供第二个参数,根据其他的字符来分割字符串。
缺省情况下,该函数能把一个字符串分割成多少部分,就分割成多少部分。
但是你可以提供第三个参数来限制该函数返回的子字符串的数目。
下面的这个例子使用了这两个附加参数:
<%
myarray=SPLIT(“Onceuponatime,therewerethreebears.”,”,”,2)
%>
在这个例子中,字符串被分割成两个。
逗号左边的子字符串被保存在数组的第一个元素中;逗号右边的子字符串被保存在数组的第二个元素中。
最后,函数FILTER()使你可以过滤一个数组。
假定你想从一个句子中过滤掉不包含字母t的每一个词。
用函数FILTER(),你可以通过如下的脚本做到这一点:
<%
myarray=SPLIT(“Onceuponatime,therewerethreebears.”)
myarray=FILTER(myarray,”t”)
%>
<%=JOIN(myarray)%>
当这个脚本执行后,将显示字符串time,therethree。
函数FILTER()过滤掉所有不匹配字符串”t”的数组元素。
你也可以用函数FILTER()过滤掉匹配某一特定字符串的所有数组元素。
例如,下面的脚本返回字符串Onceuponawerebears.
<%
myarray=SPLIT(“Onceuponatime,therewerethreebears.”)
myarray=FILTER(myarray,”t”,false)
%>
<%=JOIN(myarray)%>
替换字符串
函数REPLACE()是最有用的字符串函数之一。
你可以使用REPLACE()函数,以一个字符串取代另一个字符串的一部分。
这里有一个例子:
<%
newuser=”Edwinc.Orr”
mystring=”Thankyou,someone,forregisteringatourwebsite!
”
mystring=REPLACE(mystring,”someone”,newuser)
%>
<%=mystring%>
在这个例子中,函数REPLACE()用来以一个站点访问者的名字替代表达式”someone”。
该函数的返回值为”Thankyou,Edwinc.Orr,forregisteringatourwebsite!
”
缺省情况下,函数REPLACE()将被替换的字符串出现的所有地方都进行替换。
例如,下面的脚本删除一个字符串中的所有空格,不管这个字符串中有多少空格:
<%
mystring=REPLACE(mystring,”“,””)
%>
但是,通过指定一个起始位置和一个代表字符串替换次数的数字,你可以限制函数REPLACE()进行替换的字符串数目。
考虑如下的例子:
<%
mystring=”Welcomesomeone,yournameissomeone.”
mystring=REPLACE(mystring,”someone”,”Edwinc.Orr”,17,1)
%>
这个例子中的函数REPLACE()返回字符串”yournameisEdwinc.Orr.”。
第二个参数指定字符串从左数17个字符处被替换。
第三个参数指定只有第一次出现时进行替换。
如果表达式”someone”在后面又一次出现,则该表达式不会被替换。
缺省情况下,函数REPLACE()是区分大小写的。
在许多情况下,这并不是你所希望的。
为了强制函数REPLACE()进行不区分大小写的匹配,你可以给该函数提供第六个参数,象这样:
<%
mystring=”WelcomeSoMeoNe,yournameisSomeOne.”
mystring=REPLACE(mystring,”someone”,”Edwinc.Orr”,1,-1,1)
%>
在这个例子中,第四个参数(值为1),指定从第一个字符开始搜索该字符串,第五个参数(值为-1)指定每一个子串都要被替换,第六个参数(值为1)指定字符串的比较不区分大小写。
有时候由于一些奇怪的原因,你想反写一个字符串,有一个特殊的函数恰恰用于此目的。
函数STRREVERSE()颠倒一个字符串的字符顺序。
这里有一个例子及其返回值:
<%=STRREVERSE(“Onceuponatime,therewerethreebears.”)%>
.sraebeerhterewereht,emitanopuecnO
最后,如果你需要将一个字符串转换成大写或小写的形式,你可以使用函数UCASE()和LCASE()。
考虑如下的例子:
<%=UCASE(“Onceuponatime”)%>
ONCEUPONATIME
<%=LCASE(“Onceuponatime”)%>
onceuponatime
搜索字符串
如果你需要检测一个字符串中是否包含另一个字符串,你可以使用函数INSTR()。
函数INSTR()返回一个字符串中所包含的另一个字符串所在的位置。
这里有这个函数的一些例子及其返回值:
<%=instr(“Onceuponatime”,”time”)%>
13
<%=instr(“Onceuponatime”,”TIME”)%>
0
缺省情况下,函数INSTR()从一个字符串的第一个字符开始搜索匹配。
但是,你可以提供一个可选参数,用来指定开始搜索匹配的字符位置,如下例所示:
<%=INSTR(2,”Onceuponatime”,”Once”)%>
这个例子中的函数INSTR()的返回值将是0。
虽然目标字符串中出现了字符串Once,但它不是符合条件的匹配,因为比较是从第二个字符开始的。
注意在缺省情况下比较是区分大小写的。
在下面的例子中,字符串time不是符合条件的匹配,因为它是小写的:
<%=INSTR(“Onceuponatime”,”TIME”)%>
0
通过使用一个可选参数,你可以强制函数INSTR()忽略大小写,例如:
<%=INSTR(1,”Onceuponatime”,”TIME”,1)%>
函数中第四个参数指定进行字符串匹配时不区分大小写。
当你使用这个参数时,你必须同提供其他的所有参数,包括通常是可选参数的起始位置参数。
否则,该函数会被混淆。
函数INSTR()返回相对于字符串左边的第一个匹配。
另一个函数,INSTRREV(),从字符串的右边开始进行匹配。
为了区分这两个函数之间的差别,请看下面的两个例子及其返回值:
<%=INSTR(“Onceuponatime”,”n”)%>
2
<%=INSRRREV(“Onceuponatime”,”n”)%>
9
注意,两个函数的返回值都是从字符串左边数的值¾¾函数INSTRREV()的返回值是9而不是8。
但是函数INSTR()匹配一个字符串的第一次出现,从字符串的左边开始搜索,而函数INSTRREV()匹配一个字符串的第一次出现是从字符串的右边开始搜索。
比较字符串
你可以用等于号来比较两个字符串。
但是,这个运算符是区分大小写的。
如果你不希望字符串的大小写影响比较结果,你可以有两个选择:
第一,你可以用函数UCASE()或LCASE()把你要进行比较的字符串转换成大写或小写:
<%
user_name=”AndrewJones”
ifUCASE(user_name)=”ANDREWJONES”thenGreeting=”WelcomeAndrewJones!
”
%>
第二,你可以用函数STRCOMP()进行字符串的比较。
函数STRCOMP()比较两个字符串,当它们相等时返回0值。
你可以用这个函数执行区分大小写或不区分大小写的比较。
这里有这个函数的一些例子及其返回值:
<%=STRCOMP(“Apple”,”Apple”)%>
0
<%=STRCOMP(“Apple”,”APPLE”)%>
1
<%=STRCOMP(“Apple”,”APPLE”,1)%>
0
前两个例子执行的是区分大小写的比较。
在最后一个例子中,执行的是忽略大小写的比较。
为了执行不区分大小写的比较,你提供了值为1的第三个参数。
截取....<%=mid(rs("LSortname"),instr(rs("LSortname"),">")+1,Len(rs("LSortname"))-instr(rs("LSortname"),">"))%>