JavaScript 中的字符串分割 slice()、substr()、substring()

相同點

1、三個函數均可接受兩個參數,其中第二個參數可選。

2、只傳一個參數且參數爲正值時,三個函數返回值相同。

3、均不改變原字符串,返回新字符串。


不同點

1、第一個參數指定字符串的開始位置,第二個參數

(1)slice() 及 substring() 的第二個參數指定字符串的結束位置(不包括該指定字符)。

(2)substr() 的第二個參數指定子字符串的長度。

var string = "hello world";

alert(string.slice(3));                      //"lo world"
alert(string.substring(3));                  //"lo world"
alert(string.substr(3));                     //"lo world"

alert(string.slice(3, 7));                   //"lo w"
alert(string.substring(3, 7));               //"lo w"
alert(string.substr(3, 7));                  //"lo worl"



2、對於負值參數的處理不同

(1)slice() 兩個參數均支持負數(將其值與字符串長度相加)。

(2)substr() 第一個參數支持負數,第二個參數會將負數轉換爲0。

(3)substring() 兩個參數均將負數轉換爲0。

var string = "hello world";

alert(string.slice(-3));                      //"rld"
alert(string.substring(-3));                  //"hello world"
alert(string.substr(-3));                     //"rld"

alert(string.slice(3, -4));                   //"lo w"
alert(string.substring(3, -4));               //"hel"
alert(string.substr(3, -4));                  //""(第二個參數即字符串長度爲0)


3、對於 slice() 和 substring(),如果第二個參數小於第一個參數

(1)slice() 將返回空字符串。

(2)substring() 將把小的那個值當做開始位置,大的值當做結束位置。

var string = "hello world";

string.slice(5, 2);                //""
string.substring(5, 2);            //"llo"


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章