JavaScript 字串處理:substr vs substring vs slice | javascript substring slice
substr跟substring跟slice乍看之下非常的像都用來截取字串也同樣接受兩個參數那其中的差別在哪呢?後面都用這串字串來做測試varstr="abcdefghij0123456789";substrstr.substr(start[,length])start:起始位置,從0開始算length:要截取的長度一些特例:start大於str.length值->回傳空字串str.substr(50,10); //""start為負數->從結尾位置往前算,超過str.length會被設為 0str.substr(-10,10);//"0123456789" str.substr(-30,10);//"abcdefghij"*IE8(包括之前版本)Bug:start為負數會回傳整個字串省略length或超過str.length值-...
substr 跟 substring 跟 slice乍看之下非常的像都用來截取字串也同樣接受兩個參數那其中的差別在哪呢?
後面都用這串字串來做測試
var str = "abcdefghij0123456789"; substrstr.substr(start[, length])start: 起始位置,從 0 開始算length: 要截取的長度
一些特例:start 大於 str.length 值-> 回傳空字串
str.substr(50, 10); // ""start 為負數 -> 從結尾位置往前算,超過 str.length 會被設為 0
str.substr(-10, 10); // "0123456789" str.substr(-30, 10); // "abcdefghij"* IE 8 (包括之前版本) Bug : start 為負數會回傳整個字串
省略 length或超過 str.length 值-> length 參數會被設為 str.length 值
str.substr(10); // "0123456789" str.substr(10, 20); // "0123456789"length 為 0 或負數 -> 回傳空字串
str.substr(10, 0); // "" str.substr(10, -5); // ""參考資料:Mozilla Developer Document – substr()[1]
substringstr.substring(indexA[, indexB])startIndex: 起始位置,從 0 開始算endIndex: 結束位置,從 0 開始算
一些特例:startIndex 等於 endIndex -> 回傳空字串
str.substring(5, 5); // ""startIndex 大於 endIndex -> 交換兩個 index 參數
str.substring(15, 5); // "fghij01234"