今天有人在群裡問這兩個的差別,借這個機會在這羅列下
substring(from,to)
開始和結束的位置,從零開始的索引
參數 描述
from 必需。一個非負的整數,規定要提取的子串的第一個字元在 stringObject 中的位置。
to 可選。一個非負的整數,比要提取的子串的最後一個字元在 stringObject 中的位置多 1。如果省略該參數,那麼傳回的子串會一直到字元串的結尾。
substring 方法傳回的子串包括 start 處的字元,但不包括 to處的字元。
如果 from與 to相等,那麼該方法傳回的就是一個空串(即長度為 0 的字元串)。
如果 from比 to大,那麼該方法在提取子串之前會先交換這兩個參數。
如果 from或 to為負數,那麼它将被替換為 0。
substr(from, length )
start 必需。所需的子字元串的起始位置。字元串中的第一個字元的索引為 0。
length 可選。在傳回的子字元串中應包括的字元個數。
var str = "0123456789";
alert(str.substring(0));------------"0123456789"
alert(str.substring(5));------------"56789"
alert(str.substring(10));-----------""
alert(str.substring(12));-----------""
alert(str.substring(-5));-----------"0123456789"
alert(str.substring(-10));----------"0123456789"
alert(str.substring(-12));----------"0123456789"
alert(str.substring(0,5));----------"01234"
alert(str.substring(0,10));---------"0123456789"
alert(str.substring(0,12));---------"0123456789"
alert(str.substring(2,0));----------"01"
alert(str.substring(2,2));----------""
alert(str.substring(2,5));----------"234"
alert(str.substring(2,12));---------"23456789"
alert(str.substring(2,-2));---------"01"
alert(str.substring(-1,5));---------"01234"
alert(str.substring(-1,-5));--------""
alert(str.substr(0));---------------"0123456789"
alert(str.substr(5));---------------"56789"
alert(str.substr(10));--------------""
alert(str.substr(12));--------------""
alert(str.substr(-5));--------------"56789"
alert(str.substr(-10));-------------"0123456789"
alert(str.substr(-12));-------------"0123456789"
alert(str.substr(0,5));-------------"01234"
alert(str.substr(0,10));------------"0123456789"
alert(str.substr(0,12));------------"0123456789"
alert(str.substr(2,0));-------------""
alert(str.substr(2,2));-------------"23"
alert(str.substr(2,5));-------------"23456"
alert(str.substr(2,12));------------"23456789"
alert(str.substr(2,-2));------------""
alert(str.substr(-1,5));------------"9"
alert(str.substr(-1,-5));-----------""