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()相应的方法。