substr與substring都是截取字符串中子串,非常相近,非常容易弄混,可以有一個或兩個參數。
語法:string.substr(start,length) 第一個字符的索引是0,start必選 length可選
string.substring(start,length) 第一個字符的索引是0,start必選 end可選
相同點:當有一個參數時,兩者的功能是一樣的,返回從start指定的位置直到字符串結束的子串
var str = "hello Tony"; str.substr(6); //Tony str.substring(6); //Tony
不同點:有兩個參數時
(1)substr(start,length) 返回從start位置開始length長度的子串
“goodboy”.substr(1,6); //oodboy
【注】當length為0或者負數,返回空字符串。
"goodboy".substr(1,0); //""
如果是負數,那么該參數聲明從字符串的尾部開始算起的位置。也就是說,-1 指字符串中最后一個字符,-2 指倒數第二個字符,以此類推。
"goodboy".substr(-1) // "y"
(2)substring(start,end) 返回從start位置開始到end位置的子串(不包含end)
“goodboy”.substring(1,6); //oodbo
注:ECMA 並沒有對 substr() 進行標准化,所以不建議使用 substr()
