slice()、substring()、substr()的用法與區別

1.JavaScript slice() 方法

定義和用法

slice() 方法可從已有的數組中返回選定的元素。

語法

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

返回值

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

說明

請注意,該方法並不會修改數組,而是返回一個子數組。如果想刪除數組中的一段元素,應該使用方法 Array.splice()。

提示和註釋

註釋:您可使用負值從數組的尾部選取元素。

註釋:如果 end 未被規定,那麼 slice() 方法會選取從 start 到數組結尾的所有元素。

實例

例子 1

在本例中,我們將創建一個新數組,然後顯示從其中選取的元素:

<script type="text/javascript">

var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"

document.write(arr + "<br />")
document.write(arr.slice(1) + "<br />")
document.write(arr)

</script>

輸出:

George,John,Thomas
John,Thomas
George,John,Thomas

例子 2

在本例中,我們將創建一個新數組,然後顯示從其中選取的元素:

<script type="text/javascript">

var arr = new Array(6)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
arr[3] = "James"
arr[4] = "Adrew"
arr[5] = "Martin"

document.write(arr + "<br />")
document.write(arr.slice(2,4) + "<br />")
document.write(arr)

</script>

輸出:

George,John,Thomas,James,Adrew,Martin
Thomas,James
George,John,Thomas,James,Adrew,Martin

2.JavaScript 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 大,那麼該方法在提取子串之前會先交換這兩個參數。

提示和註釋

重要事項:與 slice() 和 substr() 方法不同的是,substring() 不接受負的參數。

實例

例子 1

在本例中,我們將使用 substring() 從字符串中提取一些字符:

<script type="text/javascript">

var str="Hello world!"
document.write(str.substring(3))

</script>

輸出:

lo world!

親自試一試

例子 2

在本例中,我們將使用 substring() 從字符串中提取一些字符:

<script type="text/javascript">

var str="Hello world!"
document.write(str.substring(3,7))

</script>

輸出:

lo w

3.JavaScript substr() 方法

定義和用法

substr() 方法可在字符串中抽取從 start 下標開始的指定數目的字符。

語法

stringObject.substr(start,length)
參數 描述
start 必需。要抽取的子串的起始下標。必須是數值。如果是負數,那麼該參數聲明從字符串的尾部開始算起的位置。也就是說,-1 指字符串中最後一個字符,-2 指倒數第二個字符,以此類推。
length 可選。子串中的字符數。必須是數值。如果省略了該參數,那麼返回從 stringObject 的開始位置到結尾的字串。

返回值

一個新的字符串,包含從 stringObject 的 start(包括 start 所指的字符) 處開始的 length 個字符。如果沒有指定 length,那麼返回的字符串包含從 start 到 stringObject 的結尾的字符。

提示和註釋

註釋:substr() 的參數指定的是子串的開始位置和長度,因此它可以替代 substring() 和 slice() 來使用。

重要事項:ECMAscript 沒有對該方法進行標準化,因此反對使用它。

重要事項:在 IE 4 中,參數 start 的值無效。在這個 BUG 中,start 規定的是第 0 個字符的位置。在之後的版本中,此 BUG 已被修正。

實例

例子 1

在本例中,我們將使用 substr() 從字符串中提取一些字符:

<script type="text/javascript">

var str="Hello world!"
document.write(str.substr(3))

</script>

輸出:

lo world!

例子 2

在本例中,我們將使用 substr() 從字符串中提取一些字符:

<script type="text/javascript">

var str="Hello world!"
document.write(str.substr(3,7))

</script>

輸出:

lo worl
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章