字串切片和子字串方法的區別


JavaScript 是一種動態且最流行的程式語言,可用於客戶端和伺服器端。JavaScript 用於建立互動式網頁。它有許多框架,例如 React JS、Angular JS、Node JS 等。

JavaScript 包含許多內建函式來執行各種任務。有一些函式用於操作字串。Str.slice 和 str.substring 是兩個可以操作字串的內建函式。儘管這兩個函式的功能幾乎相同,但它們之間也存在一些差異。

String.slice() 方法

此方法根據指定的索引返回字串的一部分。slice 方法的語法如下所示:

string.slice (start, end)

此方法有兩個引數,即開始和結束。開始指定應從中開始的索引,結束索引指示要返回的字串的最後一個索引。返回字串時不包括結束索引。結束不是必需的。如果未指定結束,則從指定的開始索引開始返回整個字串。這裡,索引從“0”開始。

String.substring() 方法

此方法也類似於 slice 方法,並返回字串的一部分作為新字串。此方法的語法如下所示:

string.substring (start, end)

這裡,開始和結束是兩個引數,表示應從哪個索引返回字串。如果未指定結束索引,則從指定的開始索引返回整個字串。返回字串時不包括結束索引。索引從“0”開始。

考慮一個字串長度為 12 的字串“Good Morning”。讓我們透過以下示例案例瞭解這些方法的功能:

const greeting = 'Good Morning'

案例 1

如果開始索引是正數,則兩種方法都給出相同的輸出。

greeting.slice (5)  		//  'Morning'
greeting.substring (5)  	// 'Morning'

這裡,索引取為 5,因此返回從主字串第 5 個位置開始的字串。

案例 2

如果給定的索引為負數,則這兩種方法會給出不同的輸出,如下所示。

greeting.slice (-7)  // 'Morning'
greeting.substring (-7)  // 'Good Morning'

在 slice 方法中,當給出負索引時,它從字串末尾開始計數,並返回從該索引位置開始的字串。在 substring 中,任何負數都被視為零。因此,它從索引 0 開始並返回整個字串。

案例 3

當傳遞字串長度時,兩種方法都返回一個空字串。

greeting.slice (12)  // ''
greeting.substring (12)  // ''

案例 4

開始索引大於結束索引

greeting.slice (9, 5)  // ''
greeting.substring (9, 5)  // 'Morn'

Slice 方法返回一個空字串,而 substring 方法交換這些索引並返回字串。不包括結束索引。

案例 5

當開始索引和結束索引都為負數時

greeting.slice (-12, -8)  // 'Good'
greeting.substring (-12, -8)  // ''

Slice 方法從字串末尾計數到指定的索引並返回它。由於兩個索引都是負數,並且 substring 方法將它們視為零,則它從零開始並在零結束。因此,返回一個空字串。

案例 6

當開始索引為負數而結束索引為正數時

greeting.slice (-3, 5)  // ''
greeting.substring (-3, 5)  // 'Good'

這裡,由於結束索引位於開始索引之前,因此 slice 方法返回一個空字串。但是 substring 方法將負索引視為零,並從索引 0 開始到索引 5 結束(不包括它)。因此,它返回“Good”。

案例 7

當開始索引為正數但結束索引為負數時

greeting.slice (5, -3)  // 'Morn'
greeting.substring (5, -3)  // 'Good'

Slice 方法返回“Morn”作為輸出,而 substring 方法返回“Good”。Substring 方法將結束索引視為零,並且由於開始索引 (5) 大於結束索引 (0),因此它簡單地交換它們的位置 (0,5) 並返回字串。

Slice 與 Substring 方法

下表突出顯示了 slice 方法和 substring 方法之間的重要區別:

Slice 方法

Substring 方法

它返回字串的一部分

它也用於提取字串的一部分

它允許負索引並返回從後開始計數的字串

如果給出負索引,則將其視為索引 0(零)位置。

如果開始索引大於結束索引,則返回一個空字串

如果開始索引大於結束索引,則只需交換它們的位置並根據該位置返回字串

結論

String.slice 和 string.substring 方法用於字串操作。它們都基於其引數並在某些情況下相似。它們的主要區別之一是當它們具有負值作為其索引時,如上述示例所示。第二個是當開始索引大於結束索引時。

更新於:2023-07-13

1K+ 瀏覽量

開啟你的 職業生涯

透過完成課程獲得認證

立即開始
廣告

© . All rights reserved.