substr与substring都是截取字符串中子串,很是相近,很是容易弄混,能够有一个或两个参数。spa
语法:string.substr(start,length) 第一个字符的索引是0,start必选 length可选code
string.substring(start,length) 第一个字符的索引是0,start必选 end可选blog
相同点:当有一个参数时,二者的功能是同样的,返回从start指定的位置直到字符串结束的子串索引
var str = "hello Tony"; str.substr(6); //Tony str.substring(6); //Tony
不一样点:有两个参数时字符串
(1)substr(start,length) 返回从start位置开始length长度的子串string
“goodboy”.substr(1,6); //oodboy
【注】当length为0或者负数,返回空字符串。class
"goodboy".substr(1,0); //""
若是是负数,那么该参数声明从字符串的尾部开始算起的位置。也就是说,-1 指字符串中最后一个字符,-2 指倒数第二个字符,以此类推。语法
"goodboy".substr(-1) // "y"
(2)substring(start,end) 返回从start位置开始到end位置的子串(不包含end)db
“goodboy”.substring(1,6); //oodbo
注:ECMA 并无对 substr() 进行标准化,因此不建议使用 substr()di