slice、substring、substr
💜slice
定义
从已有的数组中返回[start,end)
的元素。浅拷贝,不会修改数组,返回一个子数组。字符串的slice方法类似。
语法
arrayObject.slice(start,end)
stringObject.slice(start,end)
参数 | 描述 |
---|---|
start | 可选。规定从何处开始选取。 |
如果为负数,则表示从原数组中的倒数第几个元素开始提取。slice(-2) 表示提取原数组中的倒数第二个元素到最后一个元素(包含最后一个元素)。 |
|
如果省略 begin ,则 slice 从索引 0 开始。 |
|
如果 begin 大于原数组的长度,则会返回空数组。 |
|
end | 可选。规定从何处结束选取。 |
如果为负数, 则表示在原数组中的倒数第几个元素结束抽取。slice(-2,-1) 表示抽取了原数组中的倒数第二个元素到最后一个元素(不包含最后一个元素,也就是只有倒数第二个元素)。 |
|
如果省略end ,则 slice 会一直提取到原数组末尾。 |
|
如果 end 大于原数组的长度,slice 也会一直提取到原数组末尾。 |
💚substring
定义
提取字符串中介于[start.end)
之间的字符。返回新字符串。
语法
stringObject.substring(start,stop)
参数 | 描述 |
---|---|
start | 必需。一个非负的整数,规定要提取的子串的第一个字符在 stringObject 中的位置。 |
stop | 可选。一个非负的整数,比要提取的子串的最后一个字符在 stringObject 中的位置多 1。如果省略该参数,那么返回的子串会一直到字符串的结尾。 |
重要事项:与
slice
和substr
方法不同的是,substring
不接受负的参数。如果参数 start 与 stop 相等,那么该方法返回的就是一个空串(即长度为 0 的字符串)。
如果 start 比 stop 大,那么该方法在提取子串之前会先交换这两个参数。
💚substr
定义
在字符串中抽取从 start 下标开始的指定数目的字符。返回一个新的字符串。
语法
stringObject.substr(start,length)
参数 | 描述 |
---|---|
start | 必需。要抽取的子串的起始下标。必须是数值。如果是负数,那么该参数声明从字符串的尾部开始算起的位置。也就是说,-1 指字符串中最后一个字符,-2 指倒数第二个字符,以此类推。 |
length | 可选。子串中的字符数。必须是数值。如果省略了该参数,那么返回从 stringObject 的开始位置到结尾的字串。 |
注释:substr() 的参数指定的是子串的开始位置和长度,因此它可以替代 substring() 和 slice() 来使用。
重要事项:ECMAscript 没有对该方法进行标准化,因此反对使用它。