js字符串截取函数slice()、sunstring()、substr()

slice(start,[end])

第一个参数代表开始位置,第二个参数代表结束位置的下一个位置
截取出来的字符串的长度为第二个参数与第一个参数之间的差,若参数值为负数,则将该值加上字符串长度后转为正值;若第一个参数等于大于第二个参数,则返回空字符串。
作用于字符串和数组都行。
  var arr = ['a','b','c','d'];
   var a =  arr.slice(-3);    ------等同于arr.slice(1);
  // console.log(a);

------- ["b", "c", "d"]
 var arr = ['a','b','c','d'];
    var a =  arr.slice(3);
    console.log(a);  ------//  ["d"]
 var arr = ['a','b','c','d'];
    var a =  arr.slice(1,3);
    console.log(a); -------------//["b","c"]

2,substring(start,[end])

第一个参数代表开始位置,第二个参数代表结束位置的下一个位置
若参数为负数,则将该值转为0,两个参数中,取较小值作为开始位置,截取出来的字符串的长度为较大值与较小值之间的差。
作用于字符串。数组不行。
 var arr = 'abcdefg';
    var a =  arr.substring(-2); 
----------------等价于arr.substring(0)------------------------------

    console.log(a); //---'abcdefg'
 var arr = 'abcdefg';
    var a =  arr.substring(5,7);
    console.log(a); //---fg
   var arr = 'abcdefg';
    var a =  arr.substring(2,-2);

    console.log(a);  //ab

------------------------------------------------
arr.substring(2,-2)  --实际上是arr.substring(0,2)
负数装换为0,substring总是把较小的数作为起始位置

3,substr(str,length)

第一个参数代表开始位置,第二个参数代表截取的长度
作用于字符串。数组不行。
var arr = 'abcdefg';
    var a =  arr.substr(2,3);

    console.log(a);  //  cde
var arr = 'abcdefg';
    var a =  arr.substr(2);

    console.log(a);   //cdefg
var arr = 'abcdefg';
    var a =  arr.substr(-1);
   var  b = arr.substr(-2);  

    console.log(a);  // g
    console.log(b);  // fg
原文地址:https://www.cnblogs.com/qianxunpu/p/7542960.html