【JavaScript使用技巧】三個截取字符串中的子串,你用的哪個
- 2021 年 11 月 17 日
- 筆記
- javascript
【JavaScript使用技巧】三個截取字符串中的子串,你用的哪個
博客說明
文章所涉及的資料來自互聯網整理和個人總結,意在於個人學習和經驗匯總,如有什麼地方侵權,請聯繫本人刪除,謝謝!
slice() 截取
說明
通過指定的開始和結束位置,提取字符串的某個部分,並以新的字符串返回被提取的部分。
語法
stringObject.slice(start, end)
參數說明
start(必需):規定從何處開始選取。
如果是負數,那麼它規定從字符串尾部開始算起的位置。
end(可選):規定從何處結束選取,即結束處的字符下標。
如果沒有指定該參數,那麼截取的字符串包含從 start 到結束的所有字符。如果這個參數是負數,那麼它規定的是從數組尾部開始算起的字符。
示例
var str = "0123456789";
str.slice(0,5); // 01234
str.slice(3); //3456789
str.slice(3,5); //34
str.slice(-3); //789
substring()截取
說明
提取字符串中介於兩個指定下標之間的字符,返回一個新的字符串。
語法
stringObject.substring(start, stop)
參數說明
start(必需):一個非負的整數,注意是非負的整數。
標識了要提取的子串的第一個字符在 stringObject 中的位置。
stop(可選):一個非負的整數,注意是非負的整數。
比要提取的子串的最後一個字符在 stringObject 中的位置多 1(至少為一個字符)。
var str = "0123456789";
str.substring(3,5); //34
str.substring(3); //3456789
注意:
如果 start 與 end 相等,那麼該方法返回的就是一個空串(即長度為 0 的字符串)。
如果 start 比 end 大,那麼該方法在提取子串之前會先交換這兩個參數。
如果 start 或 end 為負數,那麼它將被替換為 0。
substr() 截取
說明
substr 方法用於返回一個從指定位置開始的指定長度的子字符串。這裡注意第二個參數是長度,而不是結束的位置。
語法
stringObject.substr(start, length)
參數說明
start(必需):所需的子字符串的起始位置。
字符串中的第一個字符的索引為 0。
length(可選):在返回的子字符串中應包括的字符個數。
var str = "0123456789";
str.substr(3,5); //34567
str.substr(3); //3456789
注意:
如果 length 為 0 或負數,將返回一個空字符串
如果沒有指定 length,則子字符串將延續到 stringObject 的最後
如果 start 或 length 為負數,那麼它將被替換為 0
對比和記憶
其實我猜大多數pym都知道這個三個方法,但是這三個方法的區別總是有些把持不住的樣子。
給一段代碼,好對比。
var str = "0123456789";
str.slice(3,5); //34
str.substring(3,5); //34
str.substr(3); //3456789
slice和substring都有開始和結束的概念,所以在有開始和結束參數時,區別不大,substring不支持負數,這一邊有別於slice,一般也是基於這一點來區分使用的。
substr只有開始和開始的數量,這種方式用的場景特定,區別也是最明顯的,希望如果記不住前面兩個,那就那這個孤兒收了吧😂。
感謝
萬能的網絡
公眾號-歸子莫,小程序-小歸博客