天天看點

substring()、slice()和substr()的差別

這幾天看以前的文檔,當看到substring()、slice()和substr()時,不清楚它們的差別,經查閱資料并親自驗證,做出以下總結:

首先定義一個變量便于下面測試:var str='q1207526854'

str.substring(form,to):從字元串裡截取下标為form到下标為to的字元串(不包括to對應的字元)alert(str.substring(2,6))   // 2075

  當form>to時,substring會把較小的參數作為第一參數     alert(str.substring(6,2))   //2075

  并且當其中某個參數值為負數時,substring會直接将負數轉成0。   alert(str.substring(6,-2))   //q12075

----------------------------------------------------------------------------------------------------------------------

str.slice(star,end):從字元串裡抽取下标為star到下标為end的字元串(不包括end對應的字元) alert(str.slice(2,6))   //2075

    當star>end時,slice會傳回空字元串   alert(str.slice(6,2))   // null

    并且當其中某個參數值為負數時,slice會将此參數與字元串長度相加的結果作為參數 alert(str.slice(6,-2))   // 268

    且slice可以對數組操作。

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

str.substr(star,length):從下标為star的字元串開始,截取長度為length的一個子字元串  alert(str.substr(2,6))   // 207526

   當star為負數時,substr會将此參數與字元串長度相加的結果作為參數   alert(str.substr(-6,2))   // 52

   當end為負數時,傳回空字元串。 alert(str.substr(6,-2))   // null  

繼續閱讀