相同点
这三个方法都可以对字符串进行截取,并且返回一个新的字符串,也就是不会对原字符串进行修改
不同点
这三个方法的不同之处在于参数不同。
substring
substring() 方法用于提取字符串中介于两个指定下标之间的字符。
语法
string.substring(start,stop)
参数
参数 | 描述 |
---|---|
start | 必需。一个非负的整数,规定要提取的子串的第一个字符在 string 中的位置。 |
stop | 可选。一个非负的整数,比要提取的子串的最后一个字符在 string 中的位置多 1。如果省略该参数,那么返回的子串会一直到字符串的结尾。 |
说明
1.substring()
方法返回的子串包括 start
处的字符,但不包括 stop
处的字符。
2.如果参数 start
与 stop
相等,那么该方法返回的就是一个空串(即长度为 0 的字符串)。
3.如果 start
比 stop
大,那么该方法在提取子串之前会先交换这两个参数。
4.如果 start
和 stop
有负数,那么会把该参数自动转为0
,然后继续上述规则。
substr
substr() 方法可在字符串中抽取从 start 下标开始的指定数目的字符
语法
string.substr(start,length)
参数
参数 | 描述 |
---|---|
start | 必需。要抽取的子串的起始下标。必须是数值。如果是负数,那么该参数声明从字符串的尾部开始算起的位置。也就是说,-1 指字符串中最后一个字符,-2 指倒数第二个字符,以此类推。 |
length | 可选。子串中的字符数。必须是数值。如果省略了该参数,那么返回从 string 的开始位置到结尾的字串。 |
说明
该方法与substring()
最大的区别在于第二个参数是你需要截取字符串的长度,而不是位置。
1.substr()
方法返回的子串从 start
处的字符开始(包括)往后截取length
长度,如果超过最末端就到最末端结束。
2.start
可以取负值,表示从字符串尾部往头部开始数(从右到左,注意是从1
开始,比如-1
指字符串中最后一个字符),但是截取长度还是从左到右,如果超过最末端就到最末端结束。
3.如果length
为负值,那么会直接当成0
处理,最终返回""
。
slice
slice() 方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。
语法
string.slice(start,end)
参数
参数 | 描述 |
---|---|
start | 必须。要抽取的片断的起始下标。如果是负数,则该参数规定的是从字符串的尾部开始算起的位置。也就是说,-1 指字符串的最后一个字符,-2 指倒数第二个字符,以此类推。 |
end | 可选。紧接着要抽取的片段的结尾的下标。若未指定此参数,则要提取的子串包括 start 到原字符串结尾的字符串。如果该参数是负数,那么它规定的是从字符串的尾部开始算起的位置。 |
该方法的两个参数均为位置坐标,和subtring
比较像,区别就是该方法支持负数,并且不会交换位置,始终是从start
到end
,如果该区间不存在,那么返回''
。
1.slice()
方法返回的子串包括 start
处的字符,但不包括 end
处的字符。
2.当start
或者end
为负值时,定位方式和substr
一直,从右往左数,从1开始。
2.start
到end
的顺序始终是从左到右,如果最终start
的位置在end
的右边,那么返回''
。