JS substring substr slice區別
1、api說明
(1)substring
str.substring(indexStart[, indexEnd])
substring
提取從 indexStart
到 indexEnd
(不包括)之間的字符。特別地:
- 如果
indexStart
等於indexEnd
,substring
返回一個空字符串。 - 如果省略
indexEnd
,substring
提取字符一直到字符串末尾。 - 如果任一參數小於 0 或為
NaN
,則被當作 0。 - 如果任一參數大於
stringName.length
,則被當作stringName.length
。 - 如果
indexStart
大於indexEnd
substring
的執行效果就像兩個參數調換了一樣。
說明:參數不支持負數!
(2)substr
str.substr(start[, length])
tart
是一個字符的索引。首字符的索引為 0,最後一個字符的索引為 字符串的長度減去1。substr
從 start
位置開始提取字符,提取 length
個字符(或直到字符串的末尾)。
如果 start
為正值,且大於或等於字符串的長度,則 substr
返回一個空字符串。
如果 start
為負值,則 substr
把它作為從字符串末尾開始的一個字符索引。如果 start
為負值且 abs(start)
大於字符串的長度,則 substr
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區別