1、substr(start,length)
索引从1开始 (从0 开始和从1开始结果一样)
start:开始位置, length:长度
start参数:必需。要获取的子串的起始下标,必须是数值,如果是负数,那么该参数声明从字符串的尾部开始算起的位置,-1倒数第一个字符,-2倒数第二个字符,以此类推。
length参数:可选。子串中的字符数,必须是数值,可省略。如果省略了该参数,那么返回从 stringObject 的开始位置到结尾的字串。
var x=y="0123456789";
x.substr(2,5);//返回的23456
y.substring(2,5);//返回234
//由此得出第一个参数开始截取的位置,substr很明显第二个参数是截取的长度;
//而substring第二个参数是截取的结束位置(不包含结束位置上的字符串)
//上次探索的数组中原数组可能发生变化,我们使用上一次试一下
console.log(x,y);//发现x和y均未发生变化,因此在字符串操作不存在原字符串对改变的情况
x.substr(-4);//返回6789;
y.substring(-4);//返回0123456789
2、substring(start,stop)
索引从0开始
start参数: 必需。一个非负的整数,要获取的子串的起始下标,值必须是整数。
stop参数: 可选。一个非负的整数,要获取的子串的终止下标,值必须是整数,不可为负数;可省略,如果省略该参数,那么返回的子串会一直到字符串的结尾。
其中的(start,stop)是“左闭右开”的了[start,stop)。
总结:substr()方法是从指定位置的字符开始,返回指定长度的字符数;substr()方法的第二个参数接受负数。substring()方法是从指定位置的字符开始,指定位置的字符结束,返回指定位置间的字符;substring()方法的第二个参数不接受负数。