split() 方法用于把一个字符串分割成字符串数组。
语法:stringObject.split(separator,howmany)
参数 | 描述 |
---|---|
separator | 必需。字符串或正则表达式,从该参数指定的地方分割 stringObject。 |
howmany | 可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。 |
1 2 3 4 5 6 7 8 9 10 |
var str="How are you doing today?" document.write(str.split(" ") + "<br />") document.write(str.split("") + "<br />") document.write(str.split(" ",3)) //result How,are,you,doing,today? H,o,w, ,a,r,e, ,y,o,u, ,d,o,i,n,g, ,t,o,d,a,y,? How,are,you |
slice() 方法可从已有的数组中返回选定的元素。
语法:arrayObject.slice(start,end)
参数 | 描述 |
---|---|
start | 必需。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。 |
end | 可选。规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
var arr = new Array(6) arr[0] = "George" arr[1] = "John" arr[2] = "Thomas" arr[3] = "James" arr[4] = "Adrew" arr[5] = "Martin" document.write(arr + "<br />")//George,John,Thomas,James,Adrew,Martin document.write(arr.slice(2) + "<br />")//Thomas,James,Adrew,Martin document.write(arr.slice(2,4) + "<br />")//Thomas,James document.write(arr.slice(0,4) + "<br />")//George,John,Thomas,James var str = "hellowordnicetoseeyou"; console.log("1"+str.slice(3,7));//lowo console.log("2"+str.slice(3,-7));//lowordnicet console.log("4"+str.slice(7,3));//空 console.log("3"+str.slice(-10,15));//ceto |
重要事项:当start大于end时,结果为空。
splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。该方法可谓是最强大的数组方法了,数组的删除,插入和修改都能靠它轻松搞定。
语法:arrayObject.splice(index,howmany,item1,…..,itemX)
参数 | 描述 |
---|---|
index | 必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。 |
howmany | 必需。要删除的项目数量。如果设置为 0,则不会删除项目。 |
item1, …, itemX | 可选。向数组添加的新项目。 |
删除:可以删除任意的项,只需指定两个参数,要删除的第一项的位置和要删除的项数。如:
1 2 3 4 5 6 |
var arr = [1,2,3,4,5,6,7] arr.splice(0,2); alert(arr);//3,4,5,6,7 arr.splice(2,2); alert(arr2);//3,4,7 |
插入:可以向指定位置插入任意数量的项,需三个参数,起始位置,0,和要插入的项。如果要插入多个项,可以在插入项的后面指定,项之间用逗号隔开,相当于没有中括号的数组。如:
1 2 3 4 5 6 |
var arr = [1,2,3,4,5,6,7]; arr.splice(2,0,8); alert(arr);//1,2,8,3,4,5,6,7 arr.splice(2,0,6,7,8); alert(arr);//1,2,6,7,8,8,3,4,5,6,7 |
修改:可以把想修改的数组项以传入新值的方式进行修改,需三个参数,起始位置,要修改的项数,和要插入的项。原理和插入想通,只是插入时指定了第二个参数为0,没有删除任何一项而已。插入的项和删除的项数量上可以不相等。如:
1 2 3 4 5 |
var arr = [1,2,3,4,5,6,7]; arr.splice(2,2,8); alert(arr);//1,2,8,5,6,7 arr.splice(2,2,6,7,8); alert(arr);//1,2,6,7,8,6,7 |
重中之重:splice()方法操作的是数组本身,意思是当一个数组执行了splice()方法后,数组就发生了变化,不在是原来的数组,而不管是什么操作,splice()方法返回的,都是被删除的项:如下
1 2 3 4 |
var arr = [1,2,3,4,5,6,7]; var arr1 = arr.splice(2,1,5,4);//此处执行的是修改操作 alert(arr);//1,2,5,4,4,5,6,7原数组arr发生了变化,删除3,插入5,4 alert(arr1);//3返回的是被删除的项。从2开始删除一项,就是3 |
substring() 方法用于提取字符串中介于两个指定下标之间的字符。
语法:stringObject.substring(start,stop)
参数 | 描述 |
---|---|
start | 必需。一个非负的整数,规定要提取的子串的第一个字符在 stringObject 中的位置。 |
stop | 可选。一个非负的整数,比要提取的子串的最后一个字符在 stringObject 中的位置多 1。
如果省略该参数,那么返回的子串会一直到字符串的结尾。 |
说明
substring() 方法返回的子串包括 start 处的字符,但不包括 stop 处的字符。
如果参数 start 与 stop 相等,那么该方法返回的就是一个空串(即长度为 0 的字符串)。
1 2 3 4 5 |
var str="Hello world!" document.write(str.substring(3))//lo world! document.write(str.substring(3,7))//lo w document.write(str.substring(7,3))//lo w document.write(str.substring(3,3))// |
重要事项:与 slice() 和 substr() 方法不同的是,substring() 不接受负的参数。如果 start 比 stop 大,那么该方法在提取子串之前会先交换这两个参数。
当start小于end ,且都不为负时,substring()等同于slice()。
substr() 方法可在字符串中抽取从 start 下标开始的指定数目的字符。
语法:stringObject.substr(start,length)
参数 | 描述 |
---|---|
start | 必需。要抽取的子串的起始下标。必须是数值。如果是负数,那么该参数声明从字符串的尾部开始算起的位置。也就是说,-1 指字符串中最后一个字符,-2 指倒数第二个字符,以此类推。 |
length | 可选。子串中的字符数。必须是数值。如果省略了该参数,那么返回从 stringObject 的开始位置到结尾的字串。 |
1 2 3 4 5 6 7 |
var str="Hello world!" document.write(str.substr(3,7)) document.write(str.substr(3)) //result lo worl lo world! |
substr() 的参数指定的是子串的开始位置和长度,因此它可以替代 substring() 和 slice() 来使用。
发表评论