Js字符串截取函数
1 slice()方法
1.1 定义和用法
slice() 方法可从已有的数组或字符串中返回选定的元素。
1.2 语法
arrayObject.slice(start,end)
start: 必需。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。
end: 可选。规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。
1.3 返回值
返回一个新的数组或字符串,包含从 start 到 end (不包括该元素)的 arrayObject 中的元素。
1.4 例子
var string = 'abcdefghijklmn';
string.slice(2); //"cdefghijklmn"
string.slice(2,5); //"cde"
string.slice(-6,7); //""
string.slice(-6,12); //"ijkl"
string.slice(-6,-5); //"i"
string.slice(1,1); //""
var array = [0,1,2,3,4,5,6,7,8,9];
array.slice(2); //[2, 3, 4, 5, 6, 7, 8, 9]
array.slice(2,5); //[2, 3, 4]
array.slice(-6,6); //[4, 5]
array.slice(-6,3); //[]
array.slice(-6,-5); //[4]
array.slice(1,1); //[]
2 substring()方法
1.1 定义和用法
substring() 方法用于提取字符串中介于两个指定下标之间的字符。
1.2 语法
stringObject.substring(start,stop)
start: 必需。一个非负的整数,规定要提取的子串的第一个字符在 stringObject 中的位置。
stop: 可选。一个非负的整数,比要提取的子串的最后一个字符在 stringObject 中的位置多 1。 如果省略该参数,那么返回的子串会一直到字符串的结尾。
1.3 返回值
一个新的字符串,该字符串值包含 stringObject 的一个子字符串,其内容是从 start 处到 stop-1 处的所有字符,其长度为 stop 减 start。
1.4 说明
substring() 方法返回的子串包括 start 处的字符,但不包括 stop 处的字符。
如果参数 start 与 stop 相等,那么该方法返回的就是一个空串(即长度为 0 的字符串)。如果 start 比 stop 大,那么该方法在提取子串之前会先交换这两个参数。
1.5 例子
var string = 'abcdefghijklmn';
string.substring(2); //"cdefghijklmn"
string.substring(2,5); //"cde"
string.substring(-6); //"abcdefghijklmn"
string.substring(-6,7); //"abcdefg"
string.substring(-6,12); //"abcdefghijkl"
string.substring(-6,-5); //""
string.substring(1,1); //""
string.substring(6,1); //"bcdef"
3 substr()方法
1.1 定义和用法
substr() 方法可在字符串中抽取从 start 下标开始的指定数目的字符。
1.2 语法
stringObject.substr(start,length)
1.3 返回值
一个新的字符串,包含从 stringObject 的 start(包括 start 所指的字符) 处开始的 length 个字符。如果没有指定 length,那么返回的字符串包含从 start 到 stringObject 的结尾的字符。
1.4 例子
var string = 'abcdefghijklmn';
string.substr(2); //"cdefghijklmn"
string.substr(2,5); //"cdefg"
string.substr(-6); //"ijklmn"
string.substr(-6,2); //"ij"
string.substr(-6,-5); //""
string.substr(1,1); //"b"
string.substr(6,1); //"g"
4 以上三个函数的区别
- slice()方法和substr()方法可使用负值从数组的尾部选取元素。而substring()方法不接受负的参数。
- slice()方法和substring()方法若传入的两个参数都是相同的话,则该方法返回的就是一个空串(即长度为 0 的字符串)。
- substring()方法若start 比 stop 大,那么该方法在提取子串之前会先交换这两个参数。
- slice()方法返回的结果是从start到end-1。
- substring()方法返回的结果是从start到stop-1处的所有字符,若start为负数,则start为0,其长度为 stop 减 start。
- substr()方法返回的结果是从start处开始的 length 个字符。
- 前面两个方法的传入参数是字符串的开始位置和结束位置;后面一个方法的传入参数字符串的开始位置和需要截取的长度,此方法可用于需要截取固定字符串长度的情况。