javascript字符串操作用法

与VBscript中的字符串函数相对应,javascript为String对象提供了许多方法,而字符串变量可以不用附加说明就使用这些方法。有几个 VB函数在JS中没有对象的方法可实现,但JS中也有一些高级的方法可以更复杂的文本处理工作,这将在以后再介绍。在本文中,我们来完成上文 “VBscript 中的字符串函数”中的相同的目标任务。

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

关键字 length, substr, slice, indexOf, toUppertoCase,toLowerCase

代码

var 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 = "<p>";

document.write( "Mystr=" +"\"" + Mystr + "\"" +BR);

document.write("字符串Mystr的长度是" + Mystr.length + BR);

document.write("7位左子串是" + Mystr.slice(0,7) +BR);

document.write("8位右子串是" + Mystr.slice(136-8) +BR);

document.write("从第5位开始的12个字符是" +Mystr.substr(5-1,12)+BR);

Myword = " hello ";

document.write( Myword);

document.write("这个字符串的长度是" + Myword.length +BR);

document.write("在javascript中没有截去前导空格或后部空格的方法!" +BR);

Myword = "OBJECT";

document.write ("The Myword =" + "\""+Myword+"\"");

Mypos = Mystr.indexOf(Myword);

document.write (BR);

if (Mypos==-1)

//如果没有找到子字符串,则返回 -1。

document.write(Myword +"不是Mystr子串")

else

document.write(Myword + "是Mystr的子串,第一个开始于" + Mypos);

document.write (BR);

Myword = Myword.toLowerCase();

Mypos =Mystr.indexOf(Myword);

if (Mypos==-1)

document.write(Myword + "不是Mystr的子串"+BR)

else

document.write(Myword + "是Mystr的子串,第一个开始位置是" + Mypos);

观看代码的运行结果

代码注释

因为字符串函数是以字符串对象的方法(方法是对象内部的函数)形式出现的,它的一般格式是

字符串变量名.方法名(参数表)

取子串不分左中右,有一个统一的方法substr(),其功能是返回一个从指定位置开始的指定长度的子字符串。语法:

stringvar.substr(start [, length ])

如果 length 为0或负数,将返回一个空字符串。如果没有指定该参数,则子字符串将延续到最后。

要实现VB中的right(stringvar,n),可用下列语句:

stringvar.substr(stringvar.length - n);

javascript还提供了一种slice方法也可以实现上述任务。其功能是返回字符串的片段。语法:

stringObj.slice(start, [end])

所不同的是,end表示结束位置而不时长度。如果 end =-1 或省略,就一直提取到结尾。

javascript中没有与截空格函数tirm, Ltirm等对应的方法。

大小写转换方法有toUppertoCase()和toLowerCase()。

对应与Instr()的判断子串的方法是indexOf,语法如下:

strVariable.indexOf(substring, startindex)

功能是返回 String 对象内第一次出现子字符串的位置。startindex如果省略,则从字符串的开始处查找。不同之处是如果没有找到子字符串,则返回-1而不是返回0。

另外,还有一个lastIndexOf方法,功能是返回最后一个出现的子字符串位置。在VBscript中也有InstrRev()与之对于。

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

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

关键字 split

代码

var Mystr, MyString ,BR, num;

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 = "<BR>";

MyString = Mystr.split(" ");

for (str1 in MyString){

document.write ("MyString[" + str1 +"]=");

document.write (MyString[str1]+ BR);

}

代码注释

javascript中也有split方法,功能是按照给定的分割符切割字符串,返回一个数组。语法更为简单:

数组 = 字符串名.split(分割符)

观看 Sdemo1

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

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

在javascript中没有相应的方法逆转字符串。

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

关键字 replace

代码

var oldstr, newstr, textall;

oldstr = "Hello";

textall= "---Hello World ---";

newstr = oldstr.toUpperCase();

alert ("原始文本是:\n\r" +textall);

alert ("替换后变为:\n\r" + textall.replace(oldstr,newstr));

单击按钮上一代码

代码注释

replace方法在文本中替换子串,语法与VB中一样:

stringObj.replace(待查子串, 替换子串)

没有与strcomp(), string()相应的方法。