JavaScript截取字符串的Slice、Substring、Substr函数详解和比较
在JavaScript中,提取子字符串主要是通过Slice、Substring、Substr三个方法之一。
//语法: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索引为负值】
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,如果参数大于字符串的长度,被视为字符串的长度值.
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"
相关文章
- 轻松学习 JavaScript——第 4 部分:函数中的 arguments 对象详解编程语言
- 26行JavaScript代码 仿async的 并行执行和序列执行函数详解编程语言
- JavaScript合并两个Json对象详解编程语言
- JavaScript和html5实现的3D玫瑰花详解编程语言
- javascript常用工具函数详解编程语言
- Day5 JavaScript(三)事件、表单验证以及初识jQuery详解编程语言
- 使用JavaScript的数组实现数据结构中的队列与堆栈详解编程语言
- JavaScript学习总结(十七)——Javascript原型链的原理详解编程语言
- JavaScript学习总结(五)——Javascript中==和===的区别详解编程语言
- Javascript 身份证号获得出生日期、获得性别、检查身份证号码详解编程语言
- Javascript中函数定义方法比较详解编程语言
- 大家来了解一下javascript中的种子对象Object对象详解编程语言
- javascript中的时间函数及相关运算大全详解编程语言
- javascript循环遍历数组输出key value详解编程语言
- javascript 函数详解编程语言
- javascript的内存管理详解
- javascript用函数语句和表达式定义函数的区别详解
- Javascript中Array.prototype.map()详解
- javascript操作数组详解