javascript中substr,substring,slice,splice的区别分析

发布时间:2019-10-31编辑:脚本学堂
为大家介绍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必须,end可选.
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 到原字符串结尾的字符串。如果该参数是负数,那么它规定的是从字符串的尾部开始算起的位置。

4、splice() 方法用于插入、删除或替换数组的元素。
arrayObject.splice(index,howmany,element1,.....,elementX)index,howmany必须,其他可选.
index 规定从何处添加/删除元素。该参数是开始插入和(或)删除的数组元素的下标,必须是数字。
howmany 规定应该删除多少元素。必须是数字,但可以是 "0"。如果未规定此参数,则删除从 index 开始到原数组结尾的所有元素。
element1 规定要添加到数组的新元素。从 index 所指的下标处开始插入。
elementx 可向数组添加若干元素。

注释:请注意,splice() 方法与 slice() 方法的作用是不同的,splice() 方法会直接对数组进行修改。
所有提示:某些情况下,负数的参数不识别.所以尽量不要用负数作参数.免得浏览器不兼容,造成程序的出错.

这是javascript 权威指南上的说明,象我这种E文很烂的就能勉强看懂一下,并没有对着翻译,只是按照理解说明了下。
string.substring(from, to)
指定想要得到字符串的开始位置,即索引(非负整数)
指定想要得到字符串的结束位置,不包括该位置的字符(非负整数,可选,没有指定则返回从指定开始位置到原字符串结束位置)

string.slice(start, end)
指定想要得到字符串的开始的位置,即索引。
指定想要得到字符串的结束位置,不包括该位置的字符(可选,没有指定则返回从指定开始位置到原字符串结束位置)
string.substr(start, length)
Arguments
指定想要得到字符串的开始的位置,即索引。
length
指定想要得到字符串的长度,(可选,没有指定则返回从指定开始位置到原字符串结束位置)

注意:这三个方法均返回截取原字符串的一部分新字符串,第2个参数均为可选参数,并且其实所有的参数均可以为负整数。

string.substring(from, to)
string.slice(start, end)

这两个方法差不多,都是指定开始和结束位置返回新字符串,在参数均为正整数的时候返回结果一样,当参数为负整数的时候,string.substring(from, to) 把负整数都当作0处理,而 string.slice(start, end) 将把负整数加上该字符串的长度处理。

string.substr(start, length)

这个方法只在第二个参数上指定的是新字符串的长度,对于负正数和string.slice(start, end)处理一样,把负整数加上原字符串的长度。
例子:

<script>
var s = "abcdefg"; 

s.substring(1,4) // Returns "bcd" 
s.slice(1,4) // Returns "bcd" 
s.substr(1,4) // Returns "bcde" 

s.substring(2,-3) // Returns "ab" 实际上是 s.substring(0,2) 较小的参数会在前面 
s.slice(2,-3) // Returns "cd" 实际上是 s.slice(2,4) 
s.substr(2,-3) // Returns "cdef" 实际上是 s.slice(2,4)
//http://www.jb200.com
</script>