Audition
Audition copied to clipboard
substring substr slice的区别小总结
substring substr slice的区别
参数不为负数时
slice与substring的作用相同,即第一个参数为开始截取字符串的索引(包含),第二个参数为截止截取字符串的索引(不包含)。如:
var str = 'abcdefg'
str.slice(1,5) // bcde
str.substring(1,5) // bcde
substr的第一个参数是开始截取的字符串的索引(包含),第二个参数为要截取的字符串长度。如:
var str = 'abcdefg'
str.substr(1,5) // bcdef
参数为负数时
第一个参数为负数时
slice与substr的表现为将这负数+该字符串的长度,然后再计算。如:
var str = 'abcdefg'
str.slice(-3) // efg
str.substr(-3) // efg
substring的表现为将负数转换成0。如:
var str = 'abcdefg'
str.substring(-3) // abcdefg
第二个参数为负数时
与第一个参数为负数时的行为类似,但又有点不同。substring如果第一个参数为正数,第二个参数为负数,第二个参数会首先被转换为0。由于substring方法会将较小的数作为开始的位置,将较大的数作为结束的位置。因此两个参数会交换位置。如:
var str = 'abcdefg'
str.substring(3, -3) // abc
另一种情况,在slice与substr函数中第二个参数的负数转换为正数后比第一个参数还大的话。将返回空字符串。
var str = 'abcdefg'
str.slice(5, -3) // ''
str.substr(5, -3) // ''