js 字符串 截取字串 slice,substring,substr方法对比
1. slice() 方法
slice()
提取字符串的某个部分并在新字符串中返回被提取的部分。
该方法设置两个参数:起始索引(开始位置),终止索引(结束位置)。
tips:
- 两个参数都可为负数,为负数时,表示倒数第几个对应的索引
- 省略第二个参数时,将截取剩余所有的字符串,截取到最后
- 起始索引必须小于终止索引,否则得到空串
""
let str = "0123456";
console.log(str) //0123456
console.log(str.slice(0,4)) //0123
console.log(str.slice(-3,-1)) //45
console.log(str.slice(3)) //3456
2. substring() 方法
-
类似
slice()
:1. 该方法设置两个参数:起始索引(开始位置),终止索引(结束位置)。 2. 省略第二个参数时,将截取剩余所有的字符串,截取到最后
-
不同之处在于:
-
substring()
无法接受负的索引。-
第一个参数(起始索引)为负数时,会当作
0
处理let str = "0123456"; console.log(str) //0123456 console.log(str.substring(-5,2)) //01
-
第二个参数为负数 (终止索引),截取失败,得到空字符串
""
let str = "0123456"; console.log(str) //0123456 console.log(str.substring(-5,-2)) //
-
-
若第二个参数(终止索引)小于第一个参数(起始索引),二者会被交换位置
let str = "0123456"; console.log(str) //0123456 console.log(str.substring(4,2)) //23
-
3. substr() 方法
-
substr()
类似于slice()
1. 第一个参数(起始索引)可以为负数,为负数时,表示倒数第几个对应的索引
-
不同之处在于:
-
第二个参数规定被提取部分的长度。
let str = "0123456"; console.log(str) //0123456 console.log(str.substr(1,3)) //123
-
第二个参数可以缺省,但不能为负数
-
省略第二个参数时,将截取剩余所有的字符串,截取到最后
-
第二个参数为负数时,截取失败,得到空串
""
let str = "0123456"; console.log(str) //0123456 console.log(str.substr(1)) //123456 console.log(str.substr(1,-2)) //
-
-