前端截取字符串:JS截取字符串之substring、substr和slice詳解


substring()方法

方法用於提取字符串中介於兩個指定下標之間的字符

substring(start,end)
參數 描述
start 必需。一個非負的整數,規定要提取的子串的第一個字符在 stringObject 中的位置。
stop 可選。一個非負的整數,比要提取的子串的最后一個字符在 stringObject 中的位置多 1。如果省略該參數,那么返回的子串會一直到字符串的結尾。

返回值 

一個新的字符串,該字符串值包含 stringObject 的一個子字符串,其內容是從 start 處到 stop-1 處的所有字符,其長度為 stop 減 start。 

說明

substring 方法返回的子串包括 start 處的字符,但不包括 end 處的字符。 如果 start 與 end 相等,那么該方法返回的就是一個空串(即長度為 0 的字符串)。 如果 start 比 end 大,那么該方法在提取子串之前會先交換這兩個參數。 如果 start 或 end 為負數,那么它將被替換為 0。

 

substr 方法

定義和用法

substr 方法用於返回一個從指定位置開始的指定長度的子字符串。 

語法

stringObject.substr(start [, length ])
參數 描述
start 必需。所需的子字符串的起始位置。字符串中的第一個字符的索引為 0。
length 可選。在返回的子字符串中應包括的字符個數。

說明

如果start為負數,則start=str.length+start。 如果 length 為 0 或負數,將返回一個空字符串。 如果沒有指定該參數,則子字符串將延續到stringObject的最后。

首先,他們都接收兩個參數,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));      //空字符串

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

https://www.98891.com/article-95-1.html

slice() 方法

定義和用法 

slice() 方法可提取字符串的某個部分,並以新的字符串返回被提取的部分。 

 
語法
stringObject.slice(start,end)
參數 描述
start 要抽取的片斷的起始下標。如果是負數,則該參數規定的是從字符串的尾部開始算起的位置。也就是說,-1 指字符串的最后一個字符,-2 指倒數第二個字符,以此類推。
end 緊接着要抽取的片段的結尾的下標。若未指定此參數,則要提取的子串包括 start 到原字符串結尾的字符串。如果該參數是負數,那么它規定的是從字符串的尾部開始算起的位置。
 
返回值 

一個新的字符串。包括字符串 stringObject 從 start 開始(包括 start)到 end 結束(不包括 end)為止的所有字符。 說明 String 對象的方法 slice()、substring() 和 substr() (不建議使用)都可返回字符串的指定部分。slice() 比 substring() 要靈活一些,因為它允許使用負數作為參數。slice() 與 substr() 有所不同,因為它用兩個字符的位置來指定子串,而 substr() 則用字符位置和長度來指定子串。 還要注意的是,String.slice() 與 Array.slice() 相似。

實例 

例子 1 在本例中,我們將提取從位置 6 開始的所有字符:
<script type="text/JavaScript"> var str="Hello happy world!" document.write(str.slice(6)) </script>
輸出:
happy world!
例子 2 
在本例中,我們將提取從位置 6 到位置 11 的所有字符:
<script type="text/javascript"> var str="Hello happy world!" document.write(str.slice(6,11)) </script>
輸出:
happy


免責聲明!

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



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