天天看點

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。

如果end為負數,則轉為0。

如果 length 為 0 或負數,将傳回一個空字元串。

如果沒有指定該參數,則子字元串将延續到stringObject的最後。

3、slice

slice() 方法可從已有的數組中傳回標明的元素。

文法

arrayObject.slice(start,end)      
參數 描述
start 必需。規定從何處開始選取。如果是負數,那麼它規定從數組尾部開始算起的位置。也就是說,-1 指最後一個元素,-2 指倒數第二個元素,以此類推。
end 可選。規定從何處結束選取。該參數是數組片斷結束處的數組下标。如果沒有指定該參數,那麼切分的數組包含從 start 到數組結束的所有元素。如果這個參數是負數,那麼它規定的是從數組尾部開始算起的元素。

傳回值

傳回一個新的數組,包含從 start 到 end (不包括該元素)的 arrayObject 中的元素。

說明

如果start為負數,則start=str.length+start。

如果end為負數,則end=str.length+end。

舉例:

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));//--------""

繼續閱讀