在VBscript中,系统提供了大量的字符串函数来处理有关字符串的事情。在 Javascript 中,系统为String对象提供了许多方法,而字符串变量可以不用附加说明就使用这些方法,使对字符串的处理能力更加强大。下面我们分批介绍这些函数和方法。

目标任务1 演示子字符串的截取,字符串的截空,子串的定位等。

关键字 left, right, mid, space, trim, instr, len

代码

dim Mystr, Myword,Mypos, BR
Mystr = "The built-in objects are special because they are built into ASP pages and do not need to be created before you can use them in scripts."
BR = "

"
document.write( "Mystr=" &chr(34) & Mystr & chr(34) &BR)
document.write("字符串Mystr的长度是" & len(Mystr) & BR)
document.write("7位左子串是" & left(Mystr,7) &BR)
document.write("8位左子串是" & right(Mystr,8) &BR)
document.write("从第5位开始的12个字符是" & mid(Mystr, 5, 12) &BR)
Myword = space(3) & "hello" & space(2)
document.write(chr(34) & Myword &chr(34))
document.write("这个字符串的的长度是" & len(Myword) &BR)
document.write("截去前导空格后为:" & chr(34) &Ltrim(Myword)&chr(34) &BR)
Myword = "OBJECT"
document.write ("The Myword =" & chr(34)&Myword&chr(34) )
Mypos = Instr(Mystr,Myword)
if Mypos=0 then
document.write(" Myword不是它的子串")
else
document.write(Myword & "是子串,第一个开始于" & Mypos)
end if
document.write BR
Myword = LCase(Myword)
Mypos = Instr(Mystr,Myword)
if Mypos=0 then
document.write(" Myword不是它的子串"&BR)
else
document.write(Myword & "是子串,第一个开始于" & Mypos)
end if

观看代码的运行结果

代码注释

这段代码演示了VBscript中的许多字符串函数的用法,用左子串left,右子串right,任意子串mid,生成空格字符串space,截去前导空格Ltrim,截去尾部空格Rtirm,截去前后空格tirn,字符串长度len,判断子字符串的存在性和出现的位置Instr。大小写转换Ucase 和Lcase,把ASCII码转换为字符的函数chr。

mid函数从字符串中返回指定数目的字符,语法:Mid(string, start[, length])
InStr函数返回子串在主字符串中第一次出现的位置,如子串不存在则返回0。语法:
InStr([start, ]string1, string2[, compare])
省略开始位置则从开始,compare=0 or 1,表示有二进制比较(0)或进行文本比较(1),缺省为二进制比较。详见语法参考。

其它函数的语法从例程中一目了然,不再赘述。

--------------------------------------------------------------------------------

目标任务2 演示用spilt函数分割字符串

关键字 split

代码

sub sdemo1
dim Mystr, Myword,Mypos, BR
Mystr = "The built-in objects are special because they are built into ASP pages and do not need to be created before you can use them in scripts."
BT = "
"
MyString = split(Mystr," ",-1, 1)
for i=0 to uBound(MyString)
document.write ("Mystring["&cstr(i)&"]="&MyString(i)&BT)
Next
End sub

代码注释

split函数的功能是按照给定的分割符切割字符串,结果返回给一个数组。语法:
数组 = split(字符串,分割符,count,compary)
count是要求返回的子串个数,-1表示全部;compary=0|1,表示执行二进制|文本比较。
uBound(数组)返回数组的上界。
观看 Sdemo1

--------------------------------------------------------------------------------

目标任务3 演示字符串逆转函数strReverse

关键字 strReverse

代码

sub sdemo2
dim BT,yourin,yourout
BT = "
"
yourin = InputBox("请任意输入一个字符串,中文也可以")
yourout = strReverse(yourin)
MsgBox(yourout)
End sub

代码注释

strReverse函数返回按相反顺序排列的字符串,对中文也可以用。

观看 Sdemo2

--------------------------------------------------------------------------------

目标任务4 演示字符串的替换和比较

关键字 replace, strcomp, string

代码

sub sdemo3
dim BT,olrstr, newstr
BT = "
"
oldstr= "Hello"
newstr=string(3,"-")&oldstr&string(3,"-")
MsgBox(newstr)
newstr = replace(newstr, oldstr, Ucase(oldstr)&" World")
MsgBox(newstr)
newstr = Ucase(oldstr)
for i=0 to 1
result =strcomp(newstr, oldstr,i)
if result=0 then
MsgBox(newstr &"与"&oldstr& "相等 with "&i)
else
MsgBox(newstr &"与"&oldstr& "不相等 with "&i)
End if
Next
End sub

代码注释

String(个数,单个字符)返回有相同字符组成的字符串。接着把Hello替换成大写并显示出来。
replace函数的语法:
Replace(expression, find, replacewith)
expression是待搜索文本, find是要查找的子串, replacewith是用来替换的子串。更详细的语法请查阅相关文章。
最后一段演示字符串比较函数
Strcomp(str1,str2,i)
str1和str2是两个被比较的字符串,i=0或1表示执行二进制(0)或文本(1)进行比较。i=1时不区分大小写,在程序的消息框中报告了这一点,请读者在运行下面的sdemo3时注意阅读。