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(): 兩個參數都接受負數,都表示元素索引, 如果 第一個參數 比 第二個參數大,返回空字符串。

到此這篇關於JS截取字符串的方法詳解的文章就介紹到這瞭。希望對大傢的學習有所幫助,也希望大傢多多支持WalkonNet。

推薦閱讀: