1. 程式人生 > >JS substring substr slice區別

JS substring substr slice區別

end global 不支持 全局屬性 mozilla sof 空字符 xen 表示

1、api說明

(1)substring

str.substring(indexStart[, indexEnd])

substring 提取從 indexStartindexEnd不包括)之間的字符。特別地:

  • 如果 indexStart 等於 indexEndsubstring 返回一個空字符串。
  • 如果省略 indexEndsubstring 提取字符一直到字符串末尾。
  • 如果任一參數小於 0 或為 NaN,則被當作 0。
  • 如果任一參數大於 stringName.length,則被當作 stringName.length
  • 如果 indexStart 大於 indexEnd
    ,則 substring 的執行效果就像兩個參數調換了一樣。

說明:參數不支持負數

(2)substr

str.substr(start[, length])

tart 是一個字符的索引。首字符的索引為 0,最後一個字符的索引為 字符串的長度減去1。substrstart 位置開始提取字符,提取 length 個字符(或直到字符串的末尾)。

如果 start 為正值,且大於或等於字符串的長度,則 substr 返回一個空字符串。

如果 start 為負值,則 substr 把它作為從字符串末尾開始的一個字符索引。如果 start 為負值且 abs(start) 大於字符串的長度,則 substr

使用 0 作為開始提取的索引。註意負的 start 參數不被 Microsoft JScript 所支持。

如果 length 為 0 或負值,則 substr 返回一個空字符串。如果忽略 length,則 substr 提取字符,直到字符串末尾。

說明:第二個參數是長度length。

(3)slice

str.slice(beginSlice[, endSlice])

slice() 從一個字符串中提取字符串並返回新字符串。在一個字符串中的改變不會影響另一個字符串。也就是說,slice 不修改原字符串,只會返回一個包含了原字符串中部分字符的新字符串。

註意slice() 提取的新字符串包括beginSlice

不包括 endSlice

例1:str.slice(1, 4) 提取新字符串從第二個字符到第四個 (字符索引值為 1, 2, 和 3)。

例2:str.slice(2, -1) 提取第三個字符到倒數第二個字符。

2、區別

(1)slice和substring參數含義一致,但是slice的第二個參數支持負值時能被正確處理,substring的第二個參數設置為負值時被處理為0。

(2)substr的第二個參數是length,而不是索引值。

參考:

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String/substring

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String/slice

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String/substr

JS substring substr slice區別