slice,substr和substring的区别

首先,他们都接收两个参数,slice和substring接收的是起始位置和结束位置(不包括结束位置),而substr接收的则是起始位置和所要返回的字符串长度。

直接看下面例子:测试

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

这里有个须要注意的地方就是:substring是以两个参数中较小一个做为起始位置,较大的参数做为结束位置。

如:spa

 

alert(test.substring(7,4));          //o w

 

当接收的参数是负数时,

  • slice会将它字符串的长度与对应的负数相加,结果做为参数;
  • substr则仅仅是将第一个参数与字符串长度相加后的结果做为第一个参数;
  • substring则干脆将负参数都直接转换为0。

测试代码以下:code

 

复制代码
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

6 alert(test.slice(3,-4)); //lo w
7 alert(test.substring(3,-4)); //hel
8 alert(test.substr(3,-4)); //空字符串
复制代码

 

 

1 注意:IE对substr接收负值的处理有错,它会返回原始字符串。
相关文章
相关标签/搜索