【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只有開始和開始的數量,這種方式用的場景特定,區別也是最明顯的,希望如果記不住前面兩個,那就那這個孤兒收了吧😂。

感謝

萬能的網絡

以及勤勞的自己,個人博客GitHub測試GitHub

公眾號-歸子莫,小程序-小歸博客