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 相关文章推荐
前淘宝前端开发工程师阿当的PPT中有JS技术理念问题
Jan 15 Javascript
JavaScript高级程序设计 阅读笔记(十四) js继承机制的实现
Aug 14 Javascript
javascript实现验证IP地址等相关信息代码
May 10 Javascript
localResizeIMG先压缩后使用ajax无刷新上传(移动端)
Aug 11 Javascript
js实现索引图片切换效果
Nov 21 Javascript
分享javascript计算时间差的示例代码
Mar 19 Javascript
javascript实现下雪效果【实例代码】
May 03 Javascript
AngularJS 2.0入门权威指南
Oct 08 Javascript
Bootstrap文件上传组件之bootstrap fileinput
Nov 25 Javascript
JS简单封装的图片无缝滚动效果示例【测试可用】
Mar 22 Javascript
angularJs自定义过滤器实现手机号信息隐藏的方法
Oct 08 Javascript
详解JavaScript中typeof与instanceof用法
Oct 24 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
php接口实现拖拽排序功能
2018/04/23 PHP
JS实现浏览器菜单命令
2006/09/05 Javascript
javascript之更有效率的字符串替换
2008/08/02 Javascript
jquery 简单导航实现代码
2009/09/11 Javascript
Prototype源码浅析 Enumerable部分之each方法
2012/01/16 Javascript
js点击更换背景颜色或图片的实例代码
2013/06/25 Javascript
jquery中邮箱地址 URL网站地址正则验证实例代码
2013/09/15 Javascript
完美兼容各大浏览器的jQuery插件实现图片切换特效
2014/12/12 Javascript
javascript实现瀑布流动态加载图片原理
2016/08/12 Javascript
gulp-uglify 与gulp.watch()配合使用时报错(重复压缩问题)
2016/08/24 Javascript
jQuery 常见小例汇总
2016/12/14 Javascript
详解vue 自定义marquee无缝滚动组件
2019/04/09 Javascript
微信小程序实现写入读取缓存详解
2019/08/30 Javascript
Nodejs文件上传、监听上传进度的代码
2020/03/27 NodeJs
Python 实现12306登录功能实例代码
2018/02/09 Python
解决python xlrd无法读取excel文件的问题
2018/12/25 Python
python实现批处理文件
2020/07/28 Python
Python中Yield的基本用法
2020/10/18 Python
Python 里最强的地图绘制神器
2021/03/01 Python
使用CSS3的背景渐变Text Gradient 创建文字颜色渐变
2014/08/19 HTML / CSS
HTML页面中添加Canvas标签示例
2015/01/01 HTML / CSS
银行自荐信范文
2013/10/07 职场文书
毕业生找工作的自我评价
2013/10/18 职场文书
工厂厂长岗位职责
2013/11/08 职场文书
早餐连锁店计划书
2014/01/08 职场文书
中国文明网签名寄语
2014/01/18 职场文书
30岁生日感言
2014/01/25 职场文书
网络工程专业自荐信范文
2014/03/16 职场文书
建设单位项目负责人任命书
2014/06/06 职场文书
2014法制宣传日活动总结
2014/07/09 职场文书
村级四风对照检查材料
2014/08/24 职场文书
2014年连锁店圣诞节活动方案
2014/12/09 职场文书
美丽人生观后感
2015/06/03 职场文书
2016年共产党员个人承诺书
2016/03/24 职场文书
导游词之镇江-金山寺
2019/10/14 职场文书
利用python Pandas实现批量拆分Excel与合并Excel
2021/05/23 Python