這幾天看以前的文檔,當看到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