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
所有提示:某些情况下,负数的参数不识别.所以尽量不要用负数作参数.免得浏览器不兼容,造成程序的出错.