字串切片和子字串方法的區別
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 方法用於字串操作。它們都基於其引數並在某些情況下相似。它們的主要區別之一是當它們具有負值作為其索引時,如上述示例所示。第二個是當開始索引大於結束索引時。
資料結構
網路
關係型資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP