关于JS截取字符串以及截取数组项的⼏种常见⽅法解析
js字符串数组截取操作常⽤⽅法综合解析。
1.substr()
substr() ⽅法可在字符串中抽取从 start 下标开始的指定数⽬的字符。
语法:stringObject.substr(start,length)
start:必需。要抽取的⼦串的起始下标。必须是数值。如果是负数,那么该参数声明从字符串的尾部开始算起的位置。也就是说,0是指字符串中第⼀个字符,-1 指字符串中最后⼀个字符,-2 指倒数第⼆个字符,以此类推。
length:可选。⼦串中的字符数。必须是数值。如果省略了该参数,那么返回从 stringObject 的开始位置到结尾的字串。
返回值:返回⼀个新的字符串。
例⼦:
var str="Hello world!"
document.write(str.substr(3,7))
输出:lo worl
提⽰:空格也占字符位!
2.substring()
substring() ⽅法⽤于提取字符串中介于两个指定下标之间的字符。
语法:stringObject.substring(start,stop)
start:必需。⼀个⾮负的整数,规定要提取的⼦串的第⼀个字符在 stringObject 中的位置。
stop:可选。⼀个⾮负的整数,⽐要提取的⼦串的最后⼀个字符在 stringObject 中的位置多 1。如果省略该参数,那么返回的⼦串会⼀直到字符串的结尾。
返回值:返回⼀个新的字符串,该字符串值包含stringObject 的⼀个⼦字符串,其内容是从 start 处到 stop-1 处的所有字符,其长度为 stop 减 start。
例⼦:
var str="Hello world!"
document.write(str.substring(3,7));
输出:lo w
提⽰:substring()不接受负值参数。
3.slice()
slice() ⽅法可从已有的数组中返回选定的元素。
语法:arrayObject.slice(start,end)
start:必需。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后⼀个元素,-2 指倒数第⼆个元素,以此类推。
end:可选。规定从何处结束选取。该参数是数组⽚断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开
始算起的元素。
返回值:返回⼀个新的数组,包含从 start 到 end (不包括该元素)的 arrayObject 中的元素。
例⼦:
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 />")
document.write(arr.slice(2,4) + "<br />")
document.write(arr)
输出:
George,John,Thomas,James,Adrew,Martin
write的返回值
Thomas,James
George,John,Thomas,James,Adrew,Martin
提⽰:该⽅法并不会修改数组,⽽是返回⼀个⼦数组。如果想删除数组中的⼀段元素,应该使⽤⽅法Array.splice()。
4.splice()
splice() ⽅法⽤于插⼊、删除或替换数组的元素。
语法:arrayObject.splice(index,howmany,element1,.....,elementX)
index :必需。规定从何处添加/删除元素。该参数是开始插⼊和(或)删除的数组元素的下标,必须是数字。
howmany:必需。规定应该删除多少元素。必须是数字,但可以是 "0"。如果未规定此参数,则删除从 index 开始到原数组结尾的所有元素。
element1:可选。规定要添加到数组的新元素。从 index 所指的下标处开始插⼊。
elementX:可选。可向数组添加若⼲元素。
返回值:如果从 arrayObject 中删除了元素,则返回的是含有被删除的元素的数组。
例⼦:
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 />")
arr.splice(2,1,"William")
document.write(arr)
输出:
George,John,Thomas,James,Adrew,Martin
George,John,William,James,Adrew,Martin
提⽰:splice() ⽅法可删除从 index 处开始的零个或多个元素,并且⽤参数列表中声明的⼀个或多个值来替换那些被删除的元素。
replace() ⽅法⽤于在字符串中⽤⼀些字符替换另⼀些字符,或替换⼀个与正则表达式匹配的⼦串。
语法:place(regexp/substr,replacement)
regexp/substr:必需。规定⼦字符串或要替换的模式的 RegExp 对象。请注意,如果该值是⼀个字符串,则将它作为要检索的直接量⽂本模式,⽽不是⾸先被转换为 RegExp 对象。replacement:必需。⼀个字符串值。规定了替换⽂本或⽣成替换⽂本的函数。
返回值:⼀个新的字符串,是⽤ replacement 替换了 regexp 的第⼀次匹配或所有匹配之后得到的。
例⼦:
var str="Visit Microsoft!"
document.place(/Microsoft/, "W3School"));
输出:Visit W3School!
提⽰:字符串 stringObject 的 replace() ⽅法执⾏的是查并替换的操作。它将在 stringObject 中查与 regexp 相匹配的⼦字符串,然后⽤ replacement 来替换这些⼦串。如果regexp 具有全局标志 g,那么 replace() ⽅法将替换所有匹配的⼦串。否则,它只替换第⼀个匹配⼦串。
replacement 可以是字符串,也可以是函数。如果它是字符串,那么每个匹配都将由字符串替换。但是 replacement 中的 $ 字符具有特定的含义。如下表所⽰,它说明从模式匹配得到的字符串将⽤于替换。
字符    替换⽂本
$1、$2、...、$99    与 regexp 中的第 1 到第 99 个⼦表达式相匹配的⽂本。
$&    与 regexp 相匹配的⼦串。
$`    位于匹配⼦串左侧的⽂本。
$'    位于匹配⼦串右侧的⽂本。
$$    直接量符号。
注意:ECMAScript v3 规定,replace() ⽅法的参数 replacement 可以是函数⽽不是字符串。在这种情况下,每个匹配都调⽤该函数,它返回的字符串将作为替换⽂本使⽤。该函数的第⼀个参数是匹配模式的字符串。接下来的参数是与模式中的⼦表达式匹配的字符串,可以有 0 个或多个这样的参数。接下来的参数是⼀个整数,声明了匹配在 stringObject 中出现的位置。最后⼀个参数是 stringObject 本⾝。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。