js中slice,SubString和SubStr的區別


來自:https://blog.csdn.net/qq_37120738/article/details/79086706 侵刪

slice() 定義和用法

slice() 方法可從已有的數組中返回選定的元素。

 

string.slice(start, end)提取一個字符串

string.substring(start, end)提取一個字符串,end不支持負數
string.substr(start, len)提取一個長度為len的字符串

1、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

 

2、substring是以兩個參數中較小一個作為起始位置,較大的參數作為結束位置。如:

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

 

3、當接收的參數是負數時,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));      //空字符串

 

附加說明:

定義和用法

slice() 方法可從已有的數組中返回選定的元素。

語法

arrayObject.slice(start,end)

參數

描述

start

必需。規定從何處開始選取。如果是負數,那么它規定從數組尾部開始算起的位置。也就是說,-1指最后一個元素,-2指倒數第二個元素,以此類推。

end

可選。規定從何處結束選取。該參數是數組片斷結束處的數組下標。如果沒有指定該參數,那么切分的數組包含從 start到數組結束的所有元素。如果這個參數是負數,那么它規定的是從數組尾部開始算起的元素。

返回值

返回一個新的數組,包含從 start到 end (不包括該元素)的 arrayObject中的元素。

說明

請注意,該方法並不會修改數組,而是返回一個子數組。如果想刪除數組中的一段元素,應該使用方法 Array.splice()。

提示和注釋

注釋:您可使用負值從數組的尾部選取元素。

注釋:如果 end未被規定,那么 slice()方法會選取從 start到數組結尾的所有元素。

實例

例子 1

在本例中,我們將創建一個新數組,然后顯示從其中選取的元素:

<script type="text/javascript">

 

var arr = new Array(3)

arr[0] = "George"

arr[1] = "John"

arr[2] = "Thomas"

 

document.write(arr + "<br />")

document.write(arr.slice(1) + "<br />")

document.write(arr)

 

</script>

輸出:

George,John,Thomas

John,Thomas

George,John,Thomas

例子 2

在本例中,我們將創建一個新數組,然后顯示從其中選取的元素:

<script type="text/javascript">

 

var arr = new Array(6)

arr[0] = "George"

arr[1] = "John"

arr[2] = "Thomas"

arr[3] = "James"

arr[4] = "Adrew"

arr[5] = "Martin"

 

document.write(arr + "<br />")

document.write(arr.slice(2,4) + "<br />")

document.write(arr)

 

</script>

輸出:

George,John,Thomas,James,Adrew,Martin

Thomas,James

George,John,Thomas,James,Adrew,Martin

Bug報告(3.29-23:26)

undefined


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM