slice,substr和substring的區別

首先,他們都接收兩個參數,slice和substring接收的是起始位置和結束位置(不包括結束位置),而substr接收的則是起始位置和所要返回的字符串長度。直接看下面例子:

var test='hello world';
alert(test.slice(4,7));//o w
alert(test.substring(4,7));//o w
alert(test.substr(4,7));//o world

這裏有個需要注意的地方就是:substring是以兩個參數中較小一個作爲起始位置,較大的參數作爲結束位置。

alert(test.substring(7,4));//o w

接着,當接收的參數是負數時,slice會將它字符串的長度與對應的負數相加,結果作爲參數;substr則僅僅是將第一個參數與字符串長度相加後的結果作爲第一個參數;substring則乾脆將負參數都直接轉換爲0。測試代碼如下:

var test='hello world';
alert(test.slice(-3));        //rld
alert(test.substring(-3));    //hello world
alert(test.substr(-3));        //rld
alert(test.slice(3,-4));      //lo w
alert(test.substring(3,-4));  //hel
alert(test.substr(3,-4));      //空字符串

注意:IE對substr接收負值的處理有錯,它會返回原始字符串。

發佈了23 篇原創文章 · 獲贊 13 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章