参数全为正时:
– | 参数1(必选) | 参数2(可选) |
---|---|---|
slice() | 子字符串的开始位置 | 子字符串的最后一个字符后面的位置 |
substring() | 子字符串的开始位置 | 子字符串的最后一个字符后面的位置 |
substr() | 子字符串的开始位置 | 子字符串返回的字符个数 |
第一个参数必选;第二个参数可选,无时,将字符串长度作为结束位置
var str = "hello world";
alert(str.slice(3)); //"lo world"
alert(str.substring(3)); //"lo world"
alert(str.substr(3)); //"lo world"
alert(str.slice(3,7)); //"lo w"
alset(str.substring(3,7)); //"lo w"
alert(str.substr(3,7)); //"lo worl"
参数有负数时:
- slice()
将负值与字符串长度相加,转换成正值再进行方法调用 - substr()
将负的第一个参数加上字符串长度,负的第二个参数转换为0 - substring()
将所有负值参数都转换为0,再将较小的数作为开始位置,将较大的数作为结束位置
var str = "hello world";
alert(str.slice(-3)); //"rld"
alert(str.substring(-3)); //"hello world"
alert(str.substr(-3)); //"rld"
alert(str.slice(3,-4)); //"lo w"
alert(str.substring(3,-4)); //"hel"
alert(str.substr(3,-4)); //""(空字符串)