1
var
test
=
'
hello world
'
;
2
3 alert(test.slice( 4 , 7 )); // o w
4 alert(test.substring( 4 , 7 )); // o w
5 alert(test.substr( 4 , 7 )); // o world
2
3 alert(test.slice( 4 , 7 )); // o w
4 alert(test.substring( 4 , 7 )); // o w
5 alert(test.substr( 4 , 7 )); // o world
这里有个需要注意的地方就是:substring是以两个参数中较小一个作为起始位置,较大的参数作为结束位置。
如:
alert(test.substring(7,4));
//o w
|
接着,当接收的参数是负数时,slice会将它字符串的长度与对应的负数相加,结果作为参数;substr则仅仅是将第一个参数与字符串长度相加后的结果作为第一个参数;substring则干脆将负参数都直接转换为0。测试代码如下:
1
var
test
=
'
hello world
'
;
2
3 alert(test.slice( - 3 )); //rld
4 alert(test.substring( - 3 )); //hello world
5 alert(test.substr( - 3 )); //rld
2
3 alert(test.slice( - 3 )); //rld
4 alert(test.substring( - 3 )); //hello world
5 alert(test.substr( - 3 )); //rld
6 alert(test.slice( 3 , - 4 )); //lo w
7 alert(test.substring( 3 , - 4 )); //hel
8 alert(test.substr( 3 , - 4 )); //空字符串
如果第一个参数大于第二个参数,slice
方法返回一个空字符串。
如果第一个参数大于第二个参数,substring
方法会自动更换两个参数的位置。
------------------------------------------------------------------------------------------------------------
slice 如果参数是负值,表示从结尾开始倒数计算的位置,即该负值加上字符串长度。
substring如果参数是负数,方法会自动将负数转为0。
substr 如果第一个参数是负数,表示倒数计算的字符位置。如果第二个参数是负数,将被自动转为0,因此会返回空字符串。
1
注意:IE对substr接收负值的处理有错,它会返回原始字符串。