substring與substr與slice的用法

1、substring 方法

substring 方法用於提取字符串中介於兩個指定下標之間的字符

substring(start,end)

開始和結束的位置,從零開始的索引

參數     描述
start     必需。一個非負的整數,規定要提取的子串的第一個字符在 stringObject 中的位置。
stop     可選。一個非負的整數,比要提取的子串的最後一個字符在 stringObject 中的位置多 1。如果省略該參數,那麼返回的子串會一直到字符串的結尾。

返回值

一個新的字符串,該字符串值包含 stringObject 的一個子字符串,其內容是從 start 處到 stop-1 處的所有字符,其長度爲 stop 減 start。

說明

substring 方法返回的子串包括 start 處的字符,但不包括 end 處的字符。
如果 start 與 end 相等,那麼該方法返回的就是一個空串(即長度爲 0 的字符串)。
如果 start 比 end 大,那麼該方法在提取子串之前會先交換這兩個參數。
如果 start 或 end 爲負數,那麼它將被替換爲 0。

2.substr 方法

定義和用法

substr 方法用於返回一個從指定位置開始的指定長度的子字符串。

語法

stringObject.substr(start [, length ])

參數    描述
start   必需。所需的子字符串的起始位置。字符串中的第一個字符的索引爲 0。
length 可選。在返回的子字符串中應包括的字符個數。

說明

如果start爲負數,則start=str.length+start。
如果 length 爲 0 或負數,將返回一個空字符串。
如果沒有指定該參數,則子字符串將延續到stringObject的最後。

如果 end 爲負,就將它作爲 0,此處 length 爲0,

3、slice() 方法

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

語法

stringObject.slice(start,end)
參數 描述
start 要抽取的片斷的起始下標。如果是負數,則該參數規定的是從字符串的尾部開始算起的位置。也就是說,-1 指字符串的最後一個字符,-2 指倒數第二個字符,以此類推。
end 緊接着要抽取的片段的結尾的下標。若未指定此參數,則要提取的子串包括 start 到原字符串結尾的字符串。如果該參數是負數,那麼它規定的是從字符串的尾部開始算起的位置。

返回值

一個新的字符串。包括字符串 stringObject 從 start 開始(包括 start)到 end 結束(不包括 end)爲止的所有字符。


說明

slice方法返回的子串包括 start 處的字符,但不包括 end 處的字符。
如果 start 與 end 相等,那麼該方法返回的就是一個空串(即長度爲 0 的字符串)。
如果 start 爲負,將它作爲 length + start處理,此處 length 爲數組的長度,比如a.slice(-3,4),相當於a.slice(2,4)。

如果 end 爲負,就將它作爲 length + end 處理,此處 length 爲數組的長度,比如a.slice(0,-1)。

如果省略 end ,那麼 slice 方法將一直複製到源數組結尾,比如a.slice(1)。

如果 end 出現在 start 之前,不復制任何元素到新數組中,比如a.slice(4,3)。


舉例:
var str = "0123456789";

alert(str.substring(0));------------"0123456789"
alert(str.substring(5));------------"56789"
alert(str.substring(10));-----------""
alert(str.substring(12));-----------""
alert(str.substring(-5));-----------"0123456789"
alert(str.substring(-10));----------"0123456789"
alert(str.substring(-12));----------"0123456789"
alert(str.substring(0,5));----------"01234"
alert(str.substring(0,10));---------"0123456789"
alert(str.substring(0,12));---------"0123456789"
alert(str.substring(2,0));----------"01"
alert(str.substring(2,2));----------""
alert(str.substring(2,5));----------"234"
alert(str.substring(2,12));---------"23456789"
alert(str.substring(2,-2));---------"01"
alert(str.substring(-1,5));---------"01234"
alert(str.substring(-1,-5));--------""

alert(str.substr(0));---------------"0123456789"
alert(str.substr(5));---------------"56789"
alert(str.substr(10));--------------""
alert(str.substr(12));--------------""
alert(str.substr(-5));--------------"56789"
alert(str.substr(-10));-------------"0123456789"
alert(str.substr(-12));-------------"0123456789"
alert(str.substr(0,5));-------------"01234"
alert(str.substr(0,10));------------"0123456789"
alert(str.substr(0,12));------------"0123456789"
alert(str.substr(2,0));-------------""
alert(str.substr(2,2));-------------"23"
alert(str.substr(2,5));-------------"23456"
alert(str.substr(2,12));------------"23456789"
alert(str.substr(2,-2));------------""
alert(str.substr(-1,5));------------"9"
alert(str.substr(-1,-5));-----------""    



alert(str.slice(0));//------------"0123456789"
alert(str.slice(5));//------------"56789"
alert(str.slice(10));//-----------""
alert(str.slice(12));//-----------""
alert(str.slice(-5));//-----------"56789"
alert(str.slice(-10));//----------"0123456789"
alert(str.slice(-12));//----------"0123456789"
alert(str.slice(0,5));//----------"01234"
alert(str.slice(0,10));//---------"0123456789"
alert(str.slice(0,12));//---------"0123456789"
alert(str.slice(2,0));//----------""
alert(str.slice(2,2));//----------""
alert(str.slice(2,5));//----------"234"
alert(str.slice(2,12));//---------"23456789"
alert(str.slice(2,-2));//---------"234567"
alert(str.slice(-1,5));//---------""
alert(str.slice(-1,-5));//--------""

發佈了119 篇原創文章 · 獲贊 8 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章