字串物件三種擷取子字串方法的差異
- 詳細內容
- 分類:Javascript
- 發佈:2013-02-16, 週六 10:44
- 點擊數:3044
javascript有三種從字串中擷取其子字串的方法:
string.slice(),string.substr(),string.substring()
其中string.substr()是最不一樣的,
string.substr()是藉由起始索引位置與子字串長度來擷取子字串。
語法:string.substr(start,length)
如果start是負值,會變成從字尾往前讀,
不過不是所有瀏覽器都支援,所以最好別這樣用。
除了string.substr()特別不一樣外,
剩下的string.slice()與string.substring()這兩個方法就很相像,很容易搞糊塗,
兩個方法都是藉由起始索引位置與結束索引位置來擷取子字串。
語法:string.slice(start,end) , string.substring(start,end)
語法都一樣,但兩種方法其實是有所差別的,其中一種差別是對於負值的處理。
對於string.slice()而言,當start或 end是負值時,
start或是 end 會被當成 string.length+start(or end)。
但是對於string.substring()而言,當start或 end是負值時,
start或是 end 會被當成是 0。
另一個差別是,當 start>end時 string.substring() 會自動掉換 start與end的位置,
也就是說string.substring(5,0)=string.substring(0,5),
這點在string.slice()上就不成立。
string.slice() | string.substring() | |
---|---|---|
start or end <0 |
start=string.length+start or end=string.length+end
|
start=0 or end =0 |
start>end |
string.slice(start,end) !=string.slice(end,start) 好像有些人會直接判定此時會返回空字串, 但其實不完全對,主要是因為slice允許負值 的存在,我覺得比較完整的說法是start的位 置在end的位置後方時會返回空字串。
|
string.substring(start,end) =string.substring(end,start) |
關於字串物件的其他方法可以參考部落格內的另一篇文章:字串(String)物件
按個讚!~支持本站!~
你可能會有興趣的文章
- String.substring()取得子字串
- String.substr()取得子字串
- String.search()與String.match()的差異
- String.search()搜尋字串
- String.repalce()比對與更換字串
- String.match() 使用正規表達式比對字串
- 迴圈敘述 for 與 for in