字符串方法slice. substr substring的几种区别
- 所有的方法都有两个参数,slice和substring两个参数表示的是起始位置和结束位置(不包含结束位置),substr接受的是起始位置和要返回的字符串长度
Eg:var strings = ‘wqertyui34567’;
console.log(strings.slice(1,4)) //qer
console.log(strings.substring(1,4)) //qer
console.log(strings.substr(1,4)) //qert
注意:当参数都为正数时,slice和substring的结果是一样的,有一点区别就是substring是以两个参数中较小一个作为起始位置,较大的参数作为结束位置。但是slice的第一个参数位置大于第二个参数位置时则为空
即var str =‘12345’;
str.substring(4,1)就像相当于str.substring(1,4),
2. 当传参数为负值时:
- slice当有两个参数时,只能第二个参数为负值,否则无效。负值处理:把负值会将它字符串的长度与对应的负数相加,结果作为参数
eg:var str = ‘12345678’;
str.slice(-2) // 78
str.slice(3,-2) // 456
- substring,会将参数负值直接转换成0
eg:var str = ‘12345678’;
str.substring(-2) // 12345678
str.substring(3,-2) // 123
str.substring(-2,3) // 123
- substr则仅仅是将第一个参数与字符串长度相加后的结果作为第一个参数;第二个参数不能为负值
eg:var str = ‘12345678’;
str.substr(-2) // “78”
str.substr(3,-2) // ‘’
str.substr(-4,3) // 567