这篇文章主要介绍了 3 种 javascript 实现 string 的 substring 方法,需要的朋友可以参考下
Javascript 是一种由 Netscape 的 LiveScript 发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如 Perl,遗留的速度问题,为客户提供更流畅的浏览效果。
最近遇到一个题目,"如何利用 javascript 实现 string 的 substring 方法?" 我目前想到的有以下三种方案:
方法一:用 charAt 取出截取部分:
- String.prototype.mysubstring=function(beginIndex,endIndex){
- var str=this,
- newArr=[];
- if(!endIndex){
- endIndex=str.length;
- }
- for(var i=beginIndex;i<endIndex;i++){
- newArr.push(str.charAt(i));
- }
- return newArr.join("");
- }
- //test
- "Hello world!".mysubstring(3);//"lo world!"
- "Hello world!".mysubstring(3,7);//"lo w"
方法二:把字符串转换成数组然后取出需要部分:
- String.prototype.mysubstring=function(beginIndex,endIndex){
- var str=this,
- strArr=str.split("");
- if(!endIndex){
- endIndex=str.length;
- }
- return strArr.slice(beginIndex,endIndex).join("");
- }
- //test
- console.log("Hello world!".mysubstring(3));//"lo world!"
- console.log("Hello world!".mysubstring(3,7));//"lo w"
方法三:取出头尾部分,然后用 replace 去掉多余部分,适用于 beginIndex 较小,字符串长度 - endIndex 较小的情况:
- String.prototype.mysubstring=function(beginIndex,endIndex){
- var str=this,
- beginArr=[],
- endArr=[];
- if(!endIndex){
- endIndex=str.length;
- }
- for(var i=0;i<beginIndex;i++){
- beginArr.push(str.charAt(i));
- }
- for(var i=endIndex;i<str.length;i++){
- endArr.push(str.charAt(i));
- }
- return str.replace(beginArr.join(""),"").replace(endArr.join(""),"");
- }
- //test
- console.log("Hello world!".mysubstring(3));//"lo world!"
- console.log("Hello world!".mysubstring(3,7));//"lo w"
以上 3 种 js 实现 string 的 substring 方法大家都可以尝试一下,比较一下哪种方法更方便,希望本文对大家的学习有所帮助。
来源: