var stringValue=new String("hello world");
alert(stringValue.substring(3));//"lo world"
alert(stringValue.substring(3,7));//"lo w"
var stringValue=new String("hello world");
alert(stringValue.substring(-3));//"hello world"
alert(stringValue.substring(3,-4));//"hel"
//substring()方法会把第二个参数转换为0,也就是substring(3,0),而由于这个方法会将较小的数作为开始位置,将较大数作为结束位置,最终相当于调用了substring(0,3)
(三).字符串位置方法
1.indexOf()
从一个字符串中搜索给定的字符串,然后返回怒字符串的位置(如果没有找到该字符串,则返回-1)
indexOf()方法从字符串的开头向后搜索字符串
如果给定字符串仅出现一次,那么indexOf()和lastIndexOf()会返回相同的位置值
第二个参数(可选)表示从字符串中的哪个位置开始搜索
indexOf()会从该参数指定的位置向后搜索,忽略该位置之前的所有字符
var stringValue=new String("hello world");
alert(stringValue.indexOf("o"));//4
var stringValue=new String("hello world");
alert(stringValue.indexOf("o",6));//7
var strinngValue="Lorem ipsum dolor sit amet, consectetur adipisicing elit";
var positions=new Array();
var pos=stringValue.indexOf("e");
while(pos>-1){
positions.push(pos);
pos=stringValue.indexOf("e",pos+1);
}
alert(positions);
2.lastIndexOf()
从一个字符串中搜索给定的字符串,然后返回怒字符串的位置(如果没有找到该字符串,则返回-1)
lastIndexOf()方法是从字符串的末尾向前搜索字符串
第二个参数(可选)表示从字符串中的哪个位置开始搜索
lastIndexOf()会从该参数指定的位置向前搜索,忽略该位置之后的所有字符
var stringValue=new String("hello world");
alert(stringValue.lastIndexOf("o"));//7
var stringValue=new String("hello world");
alert(stringValue.lastIndexOf("o",6));//4
var stringValue=new String(" hello world ");
var trimmedStringValue=stringValue.trim();
alert(stringValue);" hello world "
alert(trimmedStringValue);//"hello world"
(五).字符串大小写转换方法
1.toLowerCase()
借鉴自java.lang.String中的同名方法,将对象转换为小写
var stringValue=new String("hello world");
alert(stringValue.toLowerCase());//"hello world"
2.toLocaleLowerCase()
针对特定时区,将对象转换为小写
一般来说,在不知道自己的代码将在哪种语言环境中运行的情况下,还是使用针对地区的方法更稳妥一些
var stringValue=new String("hello world");
alert(stringValue.toLocaleLowerCase());//"hello world"
3.toUpperCase()
借鉴自java.lang.String中的同名方法,将对象转换为大写
var stringValue=new String("hello world");
alert(stringValue.toUpperCase());//"HELLO WORLD"
4.toLocaleUpperCase()
针对特定时区,将对象转换为大写
一般来说,在不知道自己的代码将在哪种语言环境中运行的情况下,还是使用针对地区的方法更稳妥一些
var stringValue=new String("hello world");
alert(stringValue.toLocaleUpperCase());//"HELLO WORLD"
(六).字符串的模式匹配方法
1.match()
match(),在字符串上调用这个方法,本质上与调用RegExp()的exec()方法相同
match()方法只接收一个参数,要么是一个正则表达式,要么是一个RegExp对象
var text=new String("cat,bat,sat,fat");
var pattern=/.at/;
//与pattern.exec(text)相同
var matches=text.match(pattern);
alert(matches.index);//0
alert(matches[0]);
alert(pattern.lastIndex);//0
//match()方法返回了一个数组
//如果是调用RegExp对象的exec()方法并传递本例中的字符串作为参数,那么也会得到与此相同的数组:数组的第一项是与整个模式匹配的字符串,之后的每一项(如果有)保存着与正则表达式中的捕获组匹配的字符串
var text=new String("cat,bat,sat,fat");
var result=text.replace("at","ond");
alert(result);//"cond,bat,sat,fat"
//传入replace()方法的是字符串"at"和替换用的字符串"ond"。替换的结果是把"cat"变成了"cond",但字符串中的其他字符并没有收到任何影响
result=text.replace(/at/g,"ond");
alert(result);//"cond,bond,sond,fond"
//通过将第一个参数修改为带有全局标志的正则表达式,就将全部"at"都替换成了"ond"
var text=new String("cat,bat,sat,fat");
result=text.replace(/(.at)/g,"word($1)");
alert(result);//word(cat),word(bat),word(sat),word(fat)
//在此,每个以"at"结尾的单词都被替换了,替换结果是"word"后跟一对圆括号,而圆括号中是被字符序列$1所替换的单词
var colorText=new String("red,blue,green,yellow");
var colors1=colorText.split(",");//["red","blue","green","yellow"]
var colors1=colorText.split(",",2);//["red","blue"]
var colors1=colorText.split(/[^\,]+/);//["",",",",",""]
//通过正则表达式指定的分隔符出现在了字符串的的开头(即子字符串"red")和末尾(即子字符串"yellow")
var stringValue=new String("yellow");
alert(stringValue.localeCompare("brick"));//1
alert(stringValue.localeCompare("yellow"));//0
alert(stringValue.localeCompare("zoo"));//-1
function determineOrder(value){
var result=stringValue.localeCompare(value);
if(result<0){
alert("The string 'yellow' comes before the string '"+value+"'.");
}else if(result>0){
alert("The string 'yellow' comes after the string '"+value+"'.");
}else{
alert("The string 'yellow' is equal to the string '"+value+"'.");
}
}
determineOrder("brick");
determineOrder("yellow");
determineOrder("zoo");