3种js实现string的substring方法


Posted in Javascript onNovember 09, 2015

最近遇到一个题目,“如何利用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方法大家都可以尝试一下,比较一下哪种方法更方便,希望本文对大家的学习有所帮助。

Javascript 相关文章推荐
原型方法的不同写法居然会影响调试的解决方法
Mar 08 Javascript
javascript 常用关键字列表集合
Dec 04 Javascript
js实现的日期操作类DateTime函数代码
Mar 16 Javascript
jquery仅用6行代码实现滑动门效果
Sep 07 Javascript
jQuery实现的鼠标经过时变宽的效果(附demo源码)
Apr 28 Javascript
Bootstrap Table从服务器加载数据进行显示的实现方法
Sep 29 Javascript
浅谈webpack组织模块的原理
Mar 10 Javascript
讲解vue-router之什么是动态路由
May 28 Javascript
聊聊鉴权那些事(推荐)
Aug 22 Javascript
vue实现element表格里表头信息提示功能(推荐)
Nov 20 Javascript
javascript 原型与原型链的理解及实例分析
Nov 23 Javascript
JavaScript eval()函数定义及使用方法详解
Jul 07 Javascript
举例讲解JavaScript substring()的使用方法
Nov 09 #Javascript
js中substring和substr两者区别和使用方法
Nov 09 #Javascript
浅析js中substring和substr的方法
Nov 09 #Javascript
js中substr,substring,indexOf,lastIndexOf,split,replace的用法详解
Nov 09 #Javascript
比较常见的javascript中定义函数的区别
Nov 09 #Javascript
详解JavaScript中的Unescape()和String() 函数
Nov 09 #Javascript
表单验证正则表达式实例代码详解
Nov 09 #Javascript
You might like
真正的ZIP文件操作类(php)
2007/07/21 PHP
smarty模板引擎之内建函数用法
2015/03/30 PHP
Linux安装配置php环境的方法
2016/01/14 PHP
JavaScript入门教程(5) js Screen屏幕对象
2009/01/31 Javascript
document.all的一个比较完整的总结及案例
2013/01/31 Javascript
javascript中setTimeout和setInterval的unref()和ref()用法示例
2014/11/26 Javascript
JavaScript控制网页层收起和展开效果的方法
2015/04/15 Javascript
JS中Location使用详解
2015/05/12 Javascript
判断访客终端类型集锦
2015/06/05 Javascript
EasyUi combotree 实现动态加载树节点
2016/04/01 Javascript
一个因@click.stop引发的bug的解决
2019/01/08 Javascript
微信小程序使用map组件实现检索(定位位置)周边的POI功能示例
2019/01/23 Javascript
新手入门带你学习JavaScript引擎运行原理
2019/06/24 Javascript
微信小程序Echarts覆盖正常组件问题解决
2019/07/13 Javascript
vue element-ui实现input输入框金额数字添加千分位
2019/12/29 Javascript
es6中Promise 对象基本功能与用法实例分析
2020/02/23 Javascript
详解vuejs中执行npm run dev出现页面cannot GET/问题
2020/04/26 Javascript
vue实现日历表格(element-ui)
2020/09/24 Javascript
vue前端和Django后端如何查询一定时间段内的数据
2021/02/28 Vue.js
[57:09]DOTA2-DPC中国联赛 正赛 Phoenix vs Dynasty BO3 第一场 1月26日
2021/03/11 DOTA
Python数据分析之真实IP请求Pandas详解
2016/11/18 Python
Python实现E-Mail收集插件实例教程
2019/02/06 Python
使用OpenCV实现仿射变换—平移功能
2019/08/29 Python
Python偏函数Partial function使用方法实例详解
2020/06/17 Python
Python基于time模块表示时间常用方法
2020/06/18 Python
详解Python调用系统命令的六种方法
2021/01/28 Python
农田水利实习自我鉴定
2013/09/19 职场文书
低碳生活倡议书
2014/04/14 职场文书
投标承诺书怎么写
2014/05/24 职场文书
大学第二课堂活动总结
2014/07/08 职场文书
2014年机关党建工作总结
2014/11/11 职场文书
2015年六一儿童节活动总结
2015/02/11 职场文书
义卖募捐活动总结
2015/05/09 职场文书
2015年社区居委会工作总结
2015/05/18 职场文书
优秀范文:读《红岩》有感3篇
2019/10/14 职场文书
Python 装饰器(decorator)常用的创建方式及解析
2022/04/24 Python