《JavaScript-The Definitive Guide》读书笔记:字符串常用方法

concat()

连接多个字符串,返回合并后的字符串。

1 var s1="a";
2 var s2="b";
3 var s3="c";
4 
5 console.log(s1.concat(s2,s3));//abc

concat() 方法的结果等同于:result = s1 + s2 + ... + sN。如果有不是字符串的参数,则它们在连接之前将首先被转换为字符串。

数组中的concat():将参数添加为数组的元素,返回新的数组。

1 var arr = [1, 2, 3];
2 console.log(arr.concat(4, 5));//[1,2,3,4,5]

indexOf()

查找子串第一次出现的索引。

1 var s="abcd";
2 console.log(s.indexOf("b"));//1

若没有匹配项,返回 -1。

1 var s="abcd";
2 console.log(s.indexOf("e"));//-1

可以传入第二个参数:fromIndex,表示从索引位置fromIndex开始查找,默认从起始索引0开始查找;若fromIndex为负,则从索引0开始查找。

1 var s = "aba";
2 console.log(s.indexOf("a", 0));//0
3 console.log(s.indexOf("a", 1));//2
4 console.log(s.indexOf("a", -1));//0

该方法对大小写敏感。

1 var s="Aba";
2 console.log(s.indexOf("a"));//2

lastIndexOf()

类似 indexOf() ,但从右往左查找。

1 var s = "aba";
2 console.log(s.lastIndexOf("a"));//2

也可指定起始索引,默认从最大索引开始查找。

1 var s = "aba";
2 console.log(s.lastIndexOf("a",1));//0

charAt()

返回指定索引位置的字符(因为Javascript中没有字符类型,所以返回的是长度为1的字符串)。

1 var s="abc";
2 console.log(s.charAt(1));//b

若索引越界,返回空字符串。

1 var s="abc";
2 console.log(s.charAt(-1));//""

substr()

substr(fromIndex,length):从起始索引fromIndex开始截取长度length的字符串。

1 var s="abc";
2 console.log(s.substr(1,1));//b

若length < 1,返回空字符串。

1 var s="abc";
2 console.log(s.substr(1,-1));//""

若不指定length或者length超过可截取的最大长度,则截取到结尾。

1 var s="abc";
2 console.log(s.substr(1));//bc
3 console.log(s.substr(1,10));//bc

若起始索引为负,则从右往左开始截取(从右往左的索引从-1开始)。

1 var s="abc";
2 console.log(s.substr(-1,1));//c

substring()

substring(startIndex,endIndex):截取起始索引startIndex到结束索引endIndex的子字符串,结果包含startIndex处的字符,不包含endIndex处的字符。

1 var s="abc";
2 console.log(s.substring(1,2));//b

若startIndex或者endIndex为负,则会被替换为0。

1 var s="abc";
2 console.log(s.substring(-1,2));//ab

若startIndex和endIndex相等,则返回空字符串。

若startIndex > endIndex,则执行方法时,两个值会被交换。

1 var s="abc";
2 console.log(s.substring(2,1));//b

若不指定endIndex或endIndex超出最大索引,则截取到结尾。

1 var s="abc";
2 console.log(s.substring(1));//bc
3 console.log(s.substring(1,10));//bc

slice()

slice(startIndex,endIndex):截取起始索引startIndex到结束索引endIndex的子字符串,结果包含startIndex处的字符,不包含endIndex处的字符。

1 var s="abc";
2 console.log(s.slice(1,2));//b

若startIndex或者endIndex为负,表示该索引是从右往左计算的索引(跟substring不同)。

1 var s="abc";
2 console.log(s.slice(1,2));//b
3 //等价于
4 console.log(s.slice(1,-1));//b
5 //等价于
6 console.log(s.slice(-2,-1));//b
7 //等价于
8 console.log(s.slice(-2,2));//b

若startIndex所表示的索引位置等于endIndex所表示的索引位置,或者startIndex所表示的索引位置在endIndex所表示的索引位置之后,则返回空字符串(跟substring不同)。

1 var s="abc";
2 console.log(s.slice(1,1));//""
3 console.log(s.slice(-1,-2));//""

split()

按给定字符串分割,返回分割后的多个字符串组成的字符串数组。

1 var s="a,bc,d";
2 console.log(s.split(","));//["a", "bc", "d"] 
3 
4 s="a1b1c1d1";
5 console.log(s.split("1"));//["a", "b", "c", "d", ""] 
原文地址:https://www.cnblogs.com/luotaoyeah/p/3825735.html