JavaScript是一種動態且最受歡迎的程式語言,可以在客戶端和伺服器端使用。 JavaScript 用於建立互動式網頁。它有很多框架,如React JS、Angular JS、Node JS等,
JavaScript 包含許多內建函數來執行各種任務。有一些函數用於操作字串。 Str.slice 和 str.substring 是兩個可以操作字串的 inbuit 函數。雖然這兩個函數的功能幾乎相似,但它們之間還是有一些差異
此方法根據指定的索引傳回字串的一部分。 slice 方法的語法如下 -
string.slice (start, end)
此方法有兩個參數,即start和end。 Start 指定應從其開始的索引,end index 告訴要傳回的字串的最後一個索引。返回字串時不包括結束索引。結束是沒有必要的。如果未指定 end,則傳回從指定的起始索引開始的整個字串。這裡,索引從“0”開始。
此方法也與切片方法類似,傳回字串的一部分作為新字串。方法的語法如下 -
string.substring (start, end)
這裡,start 和 end 是兩個參數,表示應傳回字串的索引。如果未指定結束索引,則傳回從指定開始索引開始的整個字串。返回字串時不包括結束索引。索引從“0”開始。
考慮字串長度為 12 的字串「Good Morning」。讓我們透過以下範例來了解這些方法的功能 -
const greeting = 'Good Morning'
如果起始索引是正數,則兩種方法給予相同的輸出。
greeting.slice (5) // 'Morning' greeting.substring (5) // 'Morning'
這裡,index取為5,因此傳回從主字串的第5個位置開始的字串。
如果給定的索引為負數,這兩種方法會給出不同的輸出,如下所示。
greeting.slice (-7) // 'Morning' greeting.substring (-7) // 'Good Morning'
在 slice 方法中,當給予負索引時,它會從字串末尾開始計數,並傳回從該索引位置開始的字串。在子字串中,任何負數都被視為零。因此它從 0 索引開始並返回整個字串。
當傳遞字串長度時,這兩種方法都會傳回空字串。
greeting.slice (12) // '' greeting.substring (12) // ''
開始索引大於結束索引
greeting.slice (9, 5) // '' greeting.substring (9, 5) // 'Morn'
Slice 方法傳回一個空字串,而 substring 方法交換這些索引並傳回字串。不包括結束索引。
當開始和結束索引均為負數時
greeting.slice (-12, -8) // 'Good' greeting.substring (-12, -8) // ''
Slice 方法從字串末尾開始計數到指定的索引並傳回它。由於兩個索引都是負數,並且子字串方法將它們視為零,因此它從零開始並以零結束。因此,傳回一個空字串。
當起始索引為負且結束索引為正時
greeting.slice (-3, 5) // '' greeting.substring (-3, 5) // 'Good'
這裡,由於結束索引出現在開始索引之前,因此 slice 方法傳回一個空字串。但子字串方法將負索引視為零,並從 0 索引開始到排除它的第 5 個索引。因此,它返回“Good”。
當開始索引為正但結束索引為負時
greeting.slice (5, -3) // 'Morn' greeting.substring (5, -3) // 'Good'
Slice 方法傳回「Morn」作為輸出,子字串方法傳回「Good」。 Substring 方法將結束索引視為零,由於開始索引 (5) 大於結束索引 (0),因此它只需交換它們的位置 (0,5) 並傳回字串。
下表突顯了切片方法和子字串方法之間的重要差異 -
切片方法 |
子字串法 |
---|---|
#它傳回字串的一部份 |
#也用來提取字串的一部分 |
它允許負索引並從後面返回字串計數 |
如果給出負索引,則將其視為 0(零)索引位置。 |
如果起始索引大於結束索引,則傳回空字串 |
#如果起始索引大於結束索引,它只是交換它們的位置並根據該結果傳回字串 |
String.slice 和 string.substring 方法用於字串的運算。根據參數和某些情況,它們都是相似的。它們的第一個主要區別是它們的索引為負值,如上面的範例所示。第二個是當開始索引大於結束索引時。
以上是字串切片和子字串方法之間的區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!