js截取字符串操作slice、substring 、substr

slice和sustring 

 相同点: 使用方式相同,都接受两个参数【起始位置和结束位置】,截取的字符串包含起始位置的值,但不包含结束位置的值。若结束位置参数缺省,默认为字符串长度值。

不同点:对传入参数的负数值处理方式不同,slice是把负数理解为从字符串末尾往前计数。substring是直接把负数当0处理,并将小的值作为起始位置,大的为结束位置。

substr

接受两个参数【起始位置和截取长度】,若截取长度缺省则默认截取到字符串最后一个值。若起始位置为负数则理解为从字符串末尾往前计数。

示例:

 1  var str = '如何使用js截取字符串';  //字符串str.length长度为11
 2     //分析:从位置1开始截取,一直到位置3,但不包含位置3的内容
 3     console.log(str.slice(1, 3));//何使
 4     //分析:-1相当于'字'的位置 ,除了从末尾算起,也可以理解为负数值加上字符串值(-3+11=8),故如下表达式可以理解为str.slice(8,10);若出现开始位置大于结束位置则输出为空
 5     console.log(str.slice(-3, -1));//字符
 6     //分析:从位置0开始截取,一直到位置5,但不包含位置5的内容
 7     console.log(str.substring(0, 5));//如何使用j
 8     //分析:-5理解为0,0小于2,则0为其实位置,2为结束位置,相当于str.substring(0,2)
 9     console.log(str.substring(2, -5));//如何
10     //分析:2为起始位置,4为截取长度值
11     console.log(str.substr(2,4));//使用js
12     //分析:2为起始位置,截取长度缺省,默认截取到最后一个值
13     console.log(str.substr(2));//使用js截取字符串
14     //分析:-7理解为从末尾往前算,相当于'j'
15     console.log(str.substr(-7,4));//js截取

 

注:三种方式都不改变原始字符串,且要注意slice【用于字符串】和splice【用于数组的添加或删除,返回删除项目,此方法会改变原始数组】,两者就差一个p,但使用场景完全不同。

arrObj.splice(index,delnum,addItem1,addItem2,addItem3)

arrObj为数组对象;index规定删除或添加的位置,若为负数则从后面往前算;delnum为删除数目;addItemx为添加的对象,可以为多个

   var arr=['tony','mary','alex','jack']
    var a=arr.splice(2,0,'tina');
    console.log(a);//[]
    console.log(arr);//['tony','mary','tina','alex','jack']
    var b=arr.splice(-1,1,['cc','gg']);
    console.log(b);//jack
    console.log(arr)//['tony','mary','tina','alex',['cc','gg']]

 

posted @ 2018-05-14 13:15  Mary哎呀小龙  阅读(307)  评论(0编辑  收藏  举报