最近作項目的時候,字符串截取一直用的是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 或負數,將返回一個空字符串