基本类型String的原生方法详解

1.字符方法

charAt( index ) 和 charCodeAt( index )

这两个方法都接收一个参数,即基于 0 的字符索引位置。前者返回对应索引位置的字符,后者返回对应索引位置字符的字符unicode编码(这个返回值是 0 - 65535 之间的整数, 如果 index 是负数,或大于等于字符串的长度,则 charCodeAt() 返回 NaN)。
如:

var str = "hello world";
alert( str.charAt(1) ); //charAt(1) 返回字符 "e"
//也可以表示成str[1],但ie7及更早版本不支持,会返回undefined值

alert(str.charCodeAt(1)); //charCodeAt(1) 返回字符"e"的字符unicode编码“101”

  

2.字符串操作方法

2-1. concat(str1,str2,···)

接收任意多个参数,用于拼接字符串,返回拼接得到的新字符串,不影响源字符串,但一般用加号操作符“+”进行字符串连接。
如:

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

  

2-2. slice()、substring()、substr()

这三个方法都返回被操作字符串的一个子字符串,都接收一或者两个参数,第一个参数指定子字符串的开始位置,第 二个参数(在指定的情况下)表示子字符串到哪里结束,三个方法对源字符串无影响。
具体来说,slice()和substring()的第二个参数指定的是子字符串最后一个字符后面的位置;
而substr()的第二个参数指定的是返回的字符个数。
如果没有第二参数,则将字符串的长度作为结束位置。
(当参数都是正数时,若只有一个参数,则三者结果一致;若指定两个参数,则 slice() 和 substring() 结果一致)
当参数是负值时,它们的行为就不尽相同了:
其中,slice() 会将传入的负值与字符串长度相加所得到的值取代掉负值,如:

var str="hello world"; //字符串长度为11
alert( str.slice(-3) ); //相当于 str.slice(8) 即输出"rld"
alert( str.slice(3,-4) ); //相当于 str.slice(3,7) 即输出 "lo w" 

而 substring() 会将所有负值都转换为 0,如:

var str="hello world"; //字符串长度为11
alert( str.substring(-3) ); //相当于 str.substring(0) 即输出 "hello world"
alert( str.substring(3,-4) );//相当于str.substring(3,0),但由于这个方法会将较小的数作为开
//始位置,将较大的数作为结束位置,亦即相当于str.substring(0,3),最后结果输出"hel"

而 substr() 会将负的第一个参数加上字符串长度,负的第二个参数转换为 0,如:

var str="hello world"; //字符串长度为11
alert( str.substr(-3) ); //相当于str.substr(8)即输出"rld"
alert( str.substr(3,-4) ); //相当于str.substr(3,0)即输出""(空字符串)

  

3.字符串位置方法

indexOf() 和 lastIndexOf()

这两个方法都是从一个字符串中搜索给定的子字符串,然后返回子字符串的位置(如果没有找到该子字符串,则返回-1),注意,位置索引值从0开始。
前者从开头向后搜索,后者从结尾向前搜索,但返回的索引值均是相对于从前向后数起的。如:

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

  

原文地址:https://www.cnblogs.com/jiangmy/p/4595952.html