js基礎--substr()和substring()的區別

  最近作項目的時候,字符串截取一直用的是substr()方法,有時候須要截取的內容是中間部分的話就很麻煩,須要分兩次,第一次截取前半部分,第二次在第一次的基礎上截取後半部分。寫了幾回以後總以爲沒對,應該還有更適合的方法,百度以後發現原來還有一個叫作substring()的方法。這裏作一下比較總結。先來看啊可能它們之間的定義吧。spa

substr(start,length)字符串

定義:substring() 方法用於提取字符串中介於兩個指定下標之間的字符。
string

參數 描述
start 必需。一個非負的整數,規定要提取的子串的第一個字符在 stringObject 中的位置。
stop

可選。一個非負的整數,比要提取的子串的最後一個字符在 stringObject 中的位置多 1。console

若是省略該參數,那麼返回的子串會一直到字符串的結尾。table

返回值:一個新的字符串,包含從 stringObject 的 start(包括 start 所指的字符) 處開始的 length 個字符。若是沒有指定 length,那麼返回的字符串包含從 start 到 stringObject 的結尾的字符。class

substring(start,stop)基礎

定義:substring() 方法用於提取字符串中介於兩個指定下標之間的字符。百度

參數 描述
start 必需。一個非負的整數,規定要提取的子串的第一個字符在 stringObject 中的位置。
stop

可選。一個非負的整數,比要提取的子串的最後一個字符在 stringObject 中的位置多 1。方法

若是省略該參數,那麼返回的子串會一直到字符串的結尾。總結

返回值:一個新的字符串,包含從 stringObject 的 start(包括 start 所指的字符) 處開始的 length 個字符。若是沒有指定 length,那麼返回的字符串包含從 start 到 stringObject 的結尾的字符。

 下面用幾個列子說明區別和注意點:

var number = "1234567890";

console.log(number.substring(0)); --> "1234567890"

console.log(number.substring(10)); --> ""

console.log(number.substring(20)); --> ""//若是start大於length,則返回空""

console.log(number.substring(-5));--> "1234567890"

console.log(number.substring(-8));--> "1234567890"

console.log(number.substring(-1,2));--> "12"

console.log(number.substring(-1,-2));--> ""//若是 start 或 end 爲負數,那麼它將被替換爲 0

console.log(number.substring(5,2));--> "345"//若是 start 比 end 大,那麼該方法在提取子串以前會先交換這兩個參數

 

console.log(number.str(0));-->"1234567890"

console.log(number.str(10));-->""

console.log(number.str(20));-->""//若是start大於length,則返回空""

console.log(number.str(-1));-->"0"

console.log(number.str(-10));-->"1234567890"//若是start爲負數,則start=str.length+start

console.log(number.str(1,2));-->"23"

console.log(number.str(1,0));

console.log(number.str(1,-3));-->""//若是 length 爲 0 或負數,將返回一個空字符串

相關文章
相關標籤/搜索