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 相关文章推荐
解读JavaScript代码 var ie = !-[1,] 最短的IE判定代码
May 28 Javascript
JS继承 笔记
Jul 13 Javascript
jQuery Ajax请求状态管理器打包
May 03 Javascript
JS区分浏览器页面是刷新还是关闭
Apr 17 Javascript
jQuery 如何实现一个滑动按钮开关
Dec 01 Javascript
JS实现定时任务每隔N秒请求后台setInterval定时和ajax请求问题
Oct 15 Javascript
JQuery选中select组件被选中的值方法
Mar 08 jQuery
layui radio性别单选框赋值方法
Aug 15 Javascript
JavaScript 点击触发复制功能实例详解
Nov 02 Javascript
实例详解vue中的$root和$parent
Apr 29 Javascript
Angular2实现的秒表及改良版示例
May 10 Javascript
详解Vue template 如何支持多个根结点
Feb 10 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增删改查示例自己写的demo
2013/09/04 PHP
PHP中获取时间的下一周下个月的方法
2014/03/18 PHP
PHP+Apache环境中如何隐藏Apache版本
2017/11/24 PHP
PHP实现提高SESSION响应速度的几种方法详解
2019/08/09 PHP
六款帮助你实现惊艳视差滚动效果的jQuery插件
2012/09/14 Javascript
js 如何实现对数据库的增删改查
2012/11/23 Javascript
jsp+javascript打造级连菜单的实例代码
2013/06/14 Javascript
提取字符串中年月日的函数代码
2013/11/05 Javascript
JavaScript原生对象之Number对象的属性和方法详解
2015/03/13 Javascript
css如何让浮动元素水平居中
2015/08/07 Javascript
jquery+CSS3实现3D拖拽相册效果
2016/07/18 Javascript
最实用的jQuery分页插件
2016/10/09 Javascript
利用jQuery.Validate异步验证用户名是否存在(推荐)
2016/12/09 Javascript
Angular 4依赖注入学习教程之组件服务注入(二)
2017/06/04 Javascript
Js中将Long转换成日期格式的实现方法
2018/06/05 Javascript
原来JS还可以这样拆箱转换详解
2019/02/01 Javascript
关于NodeJS中的循环引用详解
2019/07/23 NodeJs
BootStrap表单验证中的非Submit类型按钮点击时触发验证的坑
2019/09/05 Javascript
js实现随机div颜色位置 类似满天星效果
2019/10/24 Javascript
[41:52]2018DOTA2亚洲邀请赛3月29日小组赛B组Effect VS Secret
2018/03/30 DOTA
python中的闭包用法实例详解
2015/05/05 Python
python使用正则表达式替换匹配成功的组并输出替换的次数
2017/11/22 Python
python pandas dataframe 行列选择,切片操作方法
2018/04/10 Python
Python3利用Dlib19.7实现摄像头人脸识别的方法
2018/05/11 Python
pyqt5让图片自适应QLabel大小上以及移除已显示的图片方法
2019/06/21 Python
python Qt5实现窗体跟踪鼠标移动
2019/12/13 Python
keras用auc做metrics以及早停实例
2020/07/02 Python
世界上最大的字体市场:MyFonts
2020/01/10 全球购物
逻辑链路控制协议
2016/10/01 面试题
最新英语专业学生求职信范文
2013/09/21 职场文书
外贸专业求职信
2014/03/09 职场文书
2015年乡镇纪委工作总结
2015/05/26 职场文书
2016高考感言
2015/08/01 职场文书
干部作风纪律整顿心得体会
2016/01/23 职场文书
Python上下文管理器Content Manager
2021/06/26 Python
Win11怎么把合并的任务栏分开 Win11任务栏合并分开教程
2022/04/06 数码科技