js字符串截取函数substr substring slice使用对比

JavaScript014

js字符串截取函数substr substring slice使用对比,第1张

常用三个的字符串截取函数:substr

substring

slice,调用方式如下

复制代码

代码如下:

stringObject.slice(start,end)

stringObject.substr(start,length)

stringObject.substring(start,end)

最明显的是substr,第二个参数是length,是截取长度,其他两个函数的第二个参数都是末尾字符的下标(这里并不包括该下标的字符,只截取到该字符的前一个字符)

slice跟substring比,slice下标可以是负数,比如-1表示最后一个字符,而substring不能。substring如果

start

比end

大,那么在提取子串之前会先交换这两个参数,而slice不会,slice会返回空字符串

例子:

复制代码

代码如下:

var

str="Helloworld"

console.log(str.substr(0,

2))

console.log(str.substring(2,

0))

console.log(str.substring(0,

2))

console.log(str.slice(0,

-1))

console.log(str.slice(-1,

0))

输出:

He

He

He

Helloworl

(空字符串)

最主要的区别是:slice支持负数的下标(代表从字符串结尾开始算位置),substring不支持

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

stringObject.substring(start,stop)

start:必需。一个非负的整数,规定要提取的子串的第一个字符在 stringObject 中的位置。

end:可选。一个非负的整数,比要提取的子串的最后一个字符在 stringObject 中的位置多 1。

如果省略该参数,那么返回的子串会一直到字符串的结尾。

例如:"abcdefg".substring(3,5)返回de,字符串的第3个字符是d(从0开始,即a是第0个字符),截取到第5个字符前(不包括第5个)

与 slice()方法不同的是,substring() 不接受负的参数。

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

stringObject.slice(start,end)

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

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

slice() 比 substring() 要灵活一些,因为它允许使用负数作为参数。