javascript中substr,substring,slice,splice介绍以及区别

1、substr()方法可以在字符串中抽取从start下表开始的制定数目的字符。

stringObject.substr(start,length);其中start参数是必须的,length参数是可选的.

start 是截取的开始位置的下标,从0开始算起,必须是数字.可以是负数,-1是倒数第一个字符,-2是倒数第二个字符,以此类推.

length 是要截取的字符的长度,必须是数字.如果未指定,则从start位置处开始截取到字符串结尾.

substr 指定的是字符串的开始下标跟截取长度,所以可以替代substring跟slice使用.

重要事项:ECMAscript 没有对该方法进行标准化,因此反对使用它。

2、substring() 方法用于提取字符串中介于两个指定下标之间的字符。

stringObject.substring(start,end);其中start参数是必须的必须,参数是可选的.

start 是截取的开始位置的下标,从0开始算起,必须是非负数字.(w3c说必须是非负整数,试验了下,不是整数也可以.)

end 必须是数字.如果未指定,则从start位置处开始截取到字符串结尾.

注意事项:substring截取的字符不包括end处的字符.所以截取的长度为end-start.

                  start=end的话,返回空字符串,长度为0.

重要事项:substring不接收负的参数,slice和substr可以.

3、slice() 方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。

stringObject.slice(start,end);start必须,end可选.

start 要抽取的片断的起始下标。如果是负数,则该参数规定的是从字符串的尾部开始算起的位置。也就是说,-1 指字符串的最后一个字符,-2 指倒数第二个字符,以此类推。

end 紧接着要抽取的片段的结尾的下标。若未指定此参数,则要提取的子串包括 start 到原字符串结尾的字符串。如果该参数是负数,那么它规定的是从字符串的尾部开始算起的位置。

例子:

var a;  
a = new Array("a","b","c","d","e");  
document.write(a.slice(0,3) + "<br>");  
document.write(a.slice(-3,4) + "<br>");  
document.write(a.slice(0,-1) + "<br>");  
document.write(a.slice(1) + "<br>");  
document.write(a.slice(4,3)); 
这个示例用到了数组(Array)对象的Slice(start,[end])方法,该方法返回一个新数组,包含了源函数从start到 end 所指定的元素,但是不包括end元素。
(1)a.slice(0,3);结果a,b,c
(2)如果 start 为负,将它作为 length + start处理,此处  length 为数组的长度,比如a.slice(-3,4),相当于a.slice(2,4)。结果c,d
(3)如果 end 为负,就将它作为 length +  end 处理,此处 length 为数组的长度,比如a.slice(0,-1)。结果a,b,c,d
(4)如果省略 end ,那么 slice 方法将一直复制到源数组结尾,比如a.slice(1)。结果b,c,d,e
(5)如果 end 出现在 start 之前,不复制任何元素到新数组中,比如a.slice(4,3)。

4、splice() 方法用于插入、删除或替换数组的元素。

arrayObject.splice(index,howmany,element1,.....,elementX)index,howmany必须,其他可选.


index 规定从何处添加/删除元素。该参数是开始插入和(或)删除的数组元素的下标,必须是数字。

howmany 规定应该删除多少元素。必须是数字,但可以是 "0"。如果未规定此参数,则删除从 index 开始到原数组结尾的所有元素。

element1 规定要添加到数组的新元素。从 index 所指的下标处开始插入。

elementx 可向数组添加若干元素。

注释:请注意,splice() 方法与 slice() 方法的作用是不同的,splice() 方法会直接对数组进行修改。

例子:

var arr = new Array(5)
arr[0] = "AAA"
arr[1] = "BBB"
arr[2] = "CCC"
arr[3] = "DDD"
arr[4] = "EEE"
 
document.write(arr + "<br />")
 
arr.splice(2,0,"111")//line
 
document.write(arr + "<br />")

(1)输出结果为:

AAA,BBB,CCC,DDD EEE

AAA,BBB,111,CCC,DDD,EEE

(2)将line一行换成下面的

arr.splice(2,1,"Tove")

输出结果为:

AAA,BBB,CCC,DDD,EEE

AAA,BBB,111,DDD EEE

(3)将line一行换成下面的

arr.splice(2,3,"Tove")

输出结果为:

AAA,BBB,CCC,DDD EEE

AAA,BBB,111

所有提示:某些情况下,负数的参数不识别.所以尽量不要用负数作参数.免得浏览器不兼容,造成程序的出错.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值