菜鸟程序员成长记

JavaScript字符串方法

2017-11-14  本文已影响10人  2857b61e8161

1、两个用于访问字符串中特定字符的方法是:charAt()charCodeAt():接收一个参数,基于0的字符位置。其中charAt()方法以单个字符串的形式返回给定位置的那个字符。

var string = "hello world";
alert(string.charAt(1));//"e"

如果你想得到的不是字符而是字符编码,需要使用charCodeAt()方法

var string = "hello world";
alert(string.charCodeAt(1));//输出"101"

2、stringValue:访问个别字符串的方法。可以使用方括号加数字索引来访问字符串中的特定字符。

var string = "hello world";
alert(stringValue[1]);//"e"

3、concat():用于将一个或多个字符串拼接起来,返回拼接得到的新字符串。

var string = "hello";
var result = string.concat("world");
alert(result);//"hello world"
alert(string);"hello"

var string2 = "hello";
var result2 = string2.concat("world","!");
alert(result2);//"hello world !"
alert(sting2);//"hello"

虽然concat()是专门用来拼接字符串的方法,但实践中使用更多的还是加号操作符(+)。

4、 slice()、substr()、substring()这三个方法都返回被操作字符串的一个子字符串,而且都接受一个或两个参数。第一个参数指定子字符串的开始位置,第二个参数(在指定的情况下)表示子字符串的结束位置。slice()和substring()的第二个参数指定的是子字符串最后一个字符后面的位置。而substr()的第二个参数指定的是返回的字符个数。如果没有给这些方法传递第二个参数,则将字符串的末尾作为结束位置。

var str = "hello world";
alert(str.slice(3));//"lo world"
alert(str.substring(3));//"lo world"
alert(str.substr(3));//"lo world"
alert(str.slice(3,7));//"lo w";
alert(str.substring(3,7));//"lo w"
alert(str.substr(3,7));//"lo worl"

再给这三个方法传的参数是负值的时候,它们的行为就不尽相同了。其中slice()方法会将传入的负值与字符串的长度相加。substr()方法将负的第一个参数加上字符串的长度,而将负的第二个参数转换为0,最后,substring()方法会把所有负值参数都转换为0.

var str = "hello world";
alert(str.slice(-3));//"rld";
alert(str.substring(-3));//"hello world"
alert(str.substr(-3));//"rld"
alert(str.slice(3,-4));//"lo w"
alert(str.substring(3,-4));//"hel"
alert(str.substr(3,-4));//""空字符串

在给slice()substr()传递一个负值参数时,它们的行为相同。当第二个参数是负值时,slice()方法会把第二个参数转换为7,相当于调用了slice(3,7)substring()方法会把第二个参数转换为0,使调用变成了substring(3,0),由于这个方法会将较小的数作为开始位置,将较大的数作为结束位置,因此相当于调用了substring(0,3)substr()会将第二个参数转换为0,这就意味着返回包含零个字符的字符串,也就是空字符串。

5、字符串位置方法:有两个可以从字符串中查找子字符串的方法:indexOf()和lastIndexOf()。这两个方法都是从一个字符串中搜索给定的子字符串,然后返子字符串的位置(如果没有找到该子字符串,则返回-1)。这两个方法的区别在于:indexOf() 方法从字符串的开头向后搜索子字符串,而lastIndexOf()方法是从字符串的末尾向前搜索子字符串。

var str = "hello world";
alert(str.indexOf("o"));//4
alert(str.lastIndexOf("o"));//7

子字符串"o"第一次出现的位置是4,即"hello"中的"o";最后一次出现的位置是7,即"world"中的"o"。如果"o"在这个字符串中仅出现了一次,那么indexOf()lastIndexOf()会返回相同的位置值。

这两个方法都可以接受可选的第二个参数,表示从字符串中的哪个位置开始搜索。换句话说,indexOf()会从该参数指定的位置向后搜索,忽略该位置之前的所有字符;而lastIndexOf()则会从指定的位置向前搜索,忽略该位置之后的所有字符。

var string = "hello world";
alert(string.indexOf("o",6));//7
alert(string.lastIndexOf("o",6));//4

在使用所有第二个参数的情况下,可以通过循环调用indexOf()lastIndexOf()来找到所有匹配的子字符串。

var str = "Lorem ipsum dolor sit amet, consectetur adipisicing elit";
var positions  = [];
var pos = str.indexOf("e");

while(pos > -1){
  positions.push(pos);
  pos = str.indexOf("e",pos+1);
}
alert(positions);//"3,24,32,35,52"

6、trim():创建一个字符串的副本,删除前置和后缀的所有空格,然后返回结果。

var str = "  hello world   ";
var trimStr = str.trim();
alert(str);"  hello world  "
alert(trimStr);//"hello world"

7、字符串大小写转换方法:有四个:toLowerCase()、toLocaleLowerCase()、toUpperCase()、toLocalUpperCase()

var str = "hello world";
alert(str.toLocaleUpperCase());//"HELLO WORLD"
alert(str.toUpperCase());//"HELLO WORLD"
alert(str.toLocalLowerCase());//"hello world"
alert(str.toLowerCase());//"hello world"
上一篇下一篇

猜你喜欢

热点阅读