zl程序教程

您现在的位置是:首页 >  后端

当前栏目

js里slice,substr和substring的区别

JS 区别 substring Slice substr
2023-09-14 08:58:20 时间
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 w

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

alert(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)); //rld

alert(test.substring(-3)); //hello world

alert(test.substr(-3)); //rld

alert(test.slice(3,-4)); //lo w

alert(test.substring(3,-4)); //hel

alert(test.substr(3,-4)); //空字符串

以下来自《JavaScript权威指南》p834:

 


JavaScript 数组方法 slice() 的 5 个示例 slice() 方法将数组部分的副本返回到新的数组对象中。这个对象是从 start 到 end 选择的。需要注意的是,此方法不会修改原始数组。此外,如果向其中一个数组添加新元素,则另一个数组不会受到影响。