zl程序教程

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

当前栏目

JavaScript截取字符串的Slice、Substring、Substr函数详解和比较

JavaScript 详解 函数 字符串 比较 截取 substr substring
2023-06-13 09:15:20 时间

在JavaScript中,提取子字符串主要是通过Slice、Substring、Substr三个方法之一。

复制代码代码如下:
//slice
//语法:string.slice(start[,stop])
"Goodnews,everyone!".slice(5,9);
//"news"

//substring
//语法:string.substring(indexA[,indexB])
"Goodnews,everyone!".substring(5,9);
//"news"

//substr
//语法:string.substr(start[,length])
"Goodnews,everyone!".substr(5,4);
//"news"


在三个方法之中输入一个 start的索引参数,和一个可选的end索引(或length)参数。

但他们在一些重要的方面有所不同:
1.substr()方法从指定位置,提取指定数量的字符。
param:start开始提取字符的位置索引,length提取字符的数量长度。
return:一个新的字符串。从start处开始的length个字符。
在不同浏览器有不一致的表现,现代浏览器允许start索引参数为负数,来表示从字符串结尾处开始,提取字符的数量。但是在ie8及以下版本浏览器start索引参数最小从0开始计算。【substr为Web浏览器附加的ECMAScript特性,不建议使用时start索引为负值】

复制代码代码如下:
varstr="abcdefghij";

console.log("(1):"     +str.substr(1));    //(1):bcdefghij
console.log("(1,2):"   +str.substr(1,2));  //(1,2):bc

console.log("(-3):"    +str.substr(-3));   //(-3):hij
console.log("(-3,2):"  +str.substr(-3,2)); //(-3,2):hi

console.log("(20,2):" +str.substr(20,2)); //(20,2):
console.log("(-20,2):"+str.substr(-20,2));//(-20,2):ab

 

//ie8及以下
console.log("(-3):"+str.substr(-2));//(-20,2):hij
console.log("(-3,2):"+str.substr(-2));//(-20,2):ab


2.substring()方法用于提取字符串一个index索引至另一个之间的子集,或是直到字符串的结束。
param:indexA,indexB两个参数取值范围为一个0至字符串长度之间的整数。
return:返回一个新的字符串,从小的索引开始到大的索引之间,包括小的索引位置字符,不包括大的索引位置字符。
substring的参数是可反转的,它总是使用小的的参数值作为开始,大的参数值作为结束。如果参数是小于0或NaN,它被看作是0,如果参数大于字符串的长度,被视为字符串的长度值.
复制代码代码如下://assumesaprintfunctionisdefined
varanyString="Mozilla";

//Displays"Moz"
console.log(anyString.substring(0,3));
console.log(anyString.substring(3,0));

//Displays"lla"
console.log(anyString.substring(4,7));
console.log(anyString.substring(7,4));

//Displays"Mozill"
console.log(anyString.substring(0,6));

//Displays"Mozilla"
console.log(anyString.substring(0,7));
console.log(anyString.substring(0,10));

3.slice提取字符串的一部分。
param:beginSlice开始提取字符的位置索引,可以为负,如果为负值被视为(sourceLength-beginSlice),sourceLength是字符串的长度,即:从字符串的尾部开始算起的位置endSlice结束提取的字符的位置索引。如果省略,提取到结束。如果为负值被视为(sourceLength-endSlice)。
return:返回一个新的字符串,从start开始(包括start)到end结束(不包括end)为止的所有字符。
参数都可以为负,如果索引是负的,则从字符串的尾部开始算起。

复制代码代码如下:
varstr1="Themorningisuponus.";
console.log(str1.slice(4,-2));  // morningisuponu

varstr="Themorningisuponus.";
str.slice(-3);    //"us."
str.slice(-3,-1);//"us"
str.slice(0,-1); //"Themorningisuponus"