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 相关文章推荐
jQuery源码分析之Event事件分析
Jun 07 Javascript
js中document.write使用过程中的一点疑问解答
Mar 20 Javascript
JavaScript中实现PHP的打乱数组函数shuffle实例
Oct 11 Javascript
详解Javascript 装载和执行
Nov 17 Javascript
jquery仿百度经验滑动切换浏览效果
Apr 14 Javascript
zepto与jquery的区别及zepto的不同使用8条小结
Jul 28 Javascript
JavaScript之WebSocket技术详解
Nov 18 Javascript
js与jquery分别实现tab标签页功能的方法
Nov 18 Javascript
关于JS Lodop打印插件打印Bootstrap样式错乱问题的解决方案
Dec 23 Javascript
BootstrapTable加载按钮功能实例代码详解
Sep 22 Javascript
9种改善AngularJS性能的方法
Nov 28 Javascript
如何能分清npm cnpm npx nvm
Jan 17 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
php5 pdo新改动加载注意事项
2008/09/11 PHP
Dwz与thinkphp整合下的数据导出到Excel实例
2014/12/04 PHP
两款万能的php分页类
2015/11/12 PHP
laravel框架 api自定义全局异常处理方法
2019/10/11 PHP
用javascript将数据库中的TEXT类型数据动态赋值到TEXTAREA中
2007/04/20 Javascript
Bookmarklet实现启动jQuery(模仿 云输入法)
2010/09/15 Javascript
扩展IE中一些不兼容的方法如contains、startWith等等
2014/01/09 Javascript
js操作模态窗口及父子窗口间相互传值示例
2014/06/09 Javascript
抛弃Nginx使用nodejs做反向代理服务器
2014/07/17 NodeJs
简化版手机端照片预览组件
2015/04/13 Javascript
JQuery创建DOM节点的方法
2015/06/11 Javascript
JavaScript中几种排序算法的简单实现
2015/07/29 Javascript
jquery实现鼠标滑过显示二级下拉菜单效果
2015/08/24 Javascript
基于jQuery倾斜打开侧边栏菜单特效代码
2015/09/15 Javascript
javascript+html5+css3自定义弹出窗口效果
2017/10/26 Javascript
微信小程序input框中加入小图标的实现方法
2018/06/19 Javascript
Vue的transition-group与Virtual Dom Diff算法的使用
2019/12/09 Javascript
Django中对通过测试的用户进行限制访问的方法
2015/07/23 Python
python numpy 显示图像阵列的实例
2018/07/02 Python
python远程邮件控制电脑升级版
2019/05/23 Python
python粘包问题及socket套接字编程详解
2019/06/29 Python
Python-接口开发入门解析
2019/08/01 Python
使用Fabric自动化部署Django项目的实现
2019/09/27 Python
基于python实现MQTT发布订阅过程原理解析
2020/07/27 Python
如何基于Python按行合并两个txt
2020/11/03 Python
canvas使用注意点总结
2013/07/19 HTML / CSS
HTML5添加鼠标悬浮音响效果不使用FLASH
2014/04/23 HTML / CSS
将世界上最美丽的摄影作品转化为艺术作品:Photos.com
2017/11/28 全球购物
实习期自我鉴定
2013/10/11 职场文书
广告学专业推荐信范文
2013/11/23 职场文书
财务会计专业个人求职信范本
2014/01/08 职场文书
喷漆工的岗位职责
2014/03/17 职场文书
2014年人民调解工作总结
2014/12/08 职场文书
初中毕业生感言
2015/07/31 职场文书
2019生态环境保护倡议书!
2019/07/03 职场文书
Ajax常用封装库——Axios的使用
2021/05/08 Javascript