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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM