1. 程式人生 > >字串中的slice(),substr(),substring()三種提取字串的方法總結

字串中的slice(),substr(),substring()三種提取字串的方法總結

1、slice()

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

語法:str.slice(start,end),擷取str從start到end的所有字元(包含起始位置,不包含結束位置)

說明:start和end都可以是負數,如果是負數,就從字串的尾部開始算起,例如-1就是最後一個字元,-2就是倒數第二個字元,一次類推

如果未指定end引數,則擷取從 start 到原字串結尾的字串

例子:

   var str = 'abcde leodonna'
   console.log(str.slice(1,8))//bcde le
   console.log(str.slice(1,-2))//bcde leodon
   console.log(str.slice(-4,-1))//onn
   console.log(str.slice(8))//odonna

注意:起始字元要比結束字元小,否則擷取不成功

2、substring() 

substring()方法用於提取字串中介於兩個指定小標之間的字元

語法:str.substring(start,end) 擷取str從start到end的所有字元(包含起始位置,但不包含結束位置)

說明:兩個引數都必須是非負整數,如果引數start與end相等,那麼該方法返回的就是一個空字串,如果start比end大,那麼該方法在提取字串之前會先交換這兩個引數

如果未指定end引數,則擷取從start到原字串結尾的字串

例子:

   var str = 'abcde leodonna'
   console.log(str.substring(1,8))//bcde le
   console.log(str.substring(4))//e leodonna
   console.log(str.substring(4,1))//bcd

3、substr()

(ECMAscript 沒有對該方法進行標準化,因此反對使用它。)

 substr()方法可在字串中抽取從start下標開始的指定數目的字串

語法:str.substr(start,length)擷取str從start開始的length個字元(包含起始位置)

說明:start引數可以是任意整數,如果是負數,則從str的尾部開始算起,例如-1就是str的最後一個字元。

length是可選的,如果沒有,則表示擷取從str開始的位置到字串的尾部

例子:

   var str = 'abcde leodonna'
   console.log(str.substr(8))//odonna
   console.log(str.substr(-4))//onna
   console.log(str.substr(4,4))//e le
   console.log(str.substr(-3,6))//nna

總結:String 物件的方法 slice()、substring() 和 substr() (不建議使用)都可返回字串的指定部分。slice() 比 substring() 要靈活一些,因為它允許使用負數作為引數。slice() 與 substr() 有所不同,因為它用兩個字元的位置來指定子串,而 substr() 則用字元位置和長度來指定子串。

需要注意的是,JavaScript 的字串是不可變的(immutable),String 類定義的方法都不能改變字串的內容。所以以上三種方法都不會改變原來的字串,而是生成新的字串。