JS 截取字符的方法

substr() 方法

substr() 方法可在字符串中抽取从 start 下标开始的指定数目的字符。

stringObject.substr(start,length)

start:必需。要抽取的子串的起始下标。必须是数值。如果是负数,那么该参数声明从字符串的尾部开始算起的位置。

也就是说,-1 指字符串中最后一个字符,-2 指倒数第二个字符,以此类推。

length:可选。子串中的字符数。必须是数值。如果省略了该参数,那么返回从 stringObject 的开始位置到结尾的字串。

 记住: substr() 的第二个参数是长度

var str="abcdefg";
str.substr(3)  //  defg
str.substr(3,2)  // de (2表示长度,是下标为3开开始,包括3之后的两个字符)
str.substr(-2)  // fg  2 倒数第二个字符到结尾的字符串
str.substr(-3,2) // ef  倒数第三个字符开始

 

substring() 方法

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

stringObject.substring(start,stop)

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

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

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

返回值: 一个新的字符串,该字符串值包含 stringObject 的一个子字符串,其内容是从 start 处到 stop-1 处的所有字符,其长度为 stop 减 start

说明:  substring() 方法返回的子串包括 start 处的字符,但不包括 stop 处的字符。

如果参数 start 与 stop 相等,那么该方法返回的就是一个空串(即长度为 0 的字符串)。如果 start 比 stop 大,那么该方法在提取子串之前会先交换这两个参数。

 

var str="abcdefg"

str.substring(3) //  defg
str.substring(3,3) //  空的字符串
str.substring(3,5)  //  de 下标为3开始(包括3),到下表为5(不包括5)的字符串
str.substring(5,3)  //  de 当第一个参数 > 第二个参数 时 该方法执行时会先交换两个参数,变成:str.substring(3,5)
str.substring(-3) //  abcdefg substring()不接受负数的参数,参数为负数是,返回原字符串

 

slice() 方法

slice() 方法可从已有的数组中返回选定的元素。

arrayObject.slice(start,end)

start:必需。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。

end:可选。规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。

var str="abcdefg"
str.slice(3)  // defg 
str.slice(3,5)  // de
str.slice(-2)   //fg
str.slice(3,-2) //  de
str.slice(-4,-2) // de 负值参数从后面数起, -1表示最后一个元素
str.slice(3,-6) //空数组,当第二个参数指定的元素索引 < 第一个餐宿指定的元素索引,返回空数组

// 如果是数组,则返回一个新数组
var arr = ['a','b','c','d','e','f','g']
str.slice(3)  // ['d','e','f','g'] 

总结

substr():第一个参数表示元素索引可以为负数, 第二个参数表示截取的字符串长度

substring():两个参数都不接受负数,都表示元素索引,如果 第一个参数 比 第二个参数大,那么该方法在提取子串之前会先交换这两个参数。

slice(): 两个参数都接受负数,都表示元素索引, 如果 第一个参数 比 第二个参数大,返回空字符串

 

posted @ 2019-12-06 15:51  秦笑  阅读(3119)  评论(0编辑  收藏  举报