概要:
string.slice(start, end)提取一个字符串string.substring(start, end)提取一个字符串,end不支持负数 string.substr(start, len)提取一个长度为len的字符串
1、slice和substring接收的是起始位置和结束位置(不包括结束位置),而substr接收的则是起始位置和所要返回的字符串长度。直接看下面例子:
var test = 'hello world';alert(test.slice(4,7)); //o walert(test.substring(4,7)); //o walert(test.substr(4,7)); //o world
2、substring是以两个参数中较小一个作为起始位置,较大的参数作为结束位置。如:
alert(test.substring(7,4)); //o w
3、当接收的参数是负数时,slice会将它字符串的长度与对应的负数相加,结果作为参数;substr则仅仅是将第一个参数与字符串长度相加后的结果作为第一个参数;substring则干脆将负参数都直接转换为0。测试代码如下:
var test = 'hello world';alert(test.slice(-3)); //rldalert(test.substring(-3)); //hello worldalert(test.substr(-3)); //rldalert(test.slice(3,-4)); //lo walert(test.substring(3,-4)); //helalert(test.substr(3,-4)); //空字符串
以下来自《JavaScript权威指南》p834:
参考
1、slice,substr和substring的区别 - 肥杜 - 博客园http://www.cnblogs.com/littledu/archive/2011/04/18/2019475.html
分类: