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 相关文章推荐
JS+CSS实现一个气泡提示框
Aug 18 Javascript
关于Javascript加载执行优化的研究报告
Dec 16 Javascript
JS+CSS实现淡入式焦点图片幻灯切换效果的方法
Feb 26 Javascript
bootstrap table操作技巧分享
Feb 15 Javascript
浅谈js中startsWith 函数不能在任何浏览器兼容的问题
Mar 01 Javascript
jQuery读取本地的json文件(实例讲解)
Oct 31 jQuery
小程序ios音频播放没声音问题的解决
Jul 11 Javascript
JavaScript实现多态和继承的封装操作示例
Aug 20 Javascript
浅谈vue 单文件探索
Sep 05 Javascript
vue elementUI table表格数据 滚动懒加载的实现方法
Apr 04 Javascript
Element 默认勾选表格 toggleRowSelection的实现
Sep 04 Javascript
js+canvas实现刮刮奖功能
Sep 13 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初学者头疼问题总结
2006/07/08 PHP
给多个地址发邮件的类
2006/10/09 PHP
PHP 编写的 25个游戏脚本
2009/05/11 PHP
php入门教程 精简版
2009/12/13 PHP
thinkPHP模板引擎用法示例
2016/12/08 PHP
完整显示当前日期和时间的JS代码
2007/09/17 Javascript
让getElementsByName适应IE和firefox的方法
2007/09/24 Javascript
Extjs学习笔记之六 面版
2010/01/08 Javascript
multiSteps 基于Jquery的多步骤滑动切换插件
2011/07/22 Javascript
jQuery根据ID获取input、checkbox、radio、select的示例
2014/08/11 Javascript
jQuery $命名冲突解决方案汇总
2014/11/13 Javascript
js实现的四级左侧网站分类菜单实例
2015/05/06 Javascript
vue中遇到的坑之变化检测问题(数组相关)
2017/10/13 Javascript
使用Bootrap和Vue实现仿百度搜索功能
2017/10/26 Javascript
关于Vue背景图打包之后访问路径错误问题的解决
2017/11/03 Javascript
vue slots 组件的组合/分发实例
2018/09/06 Javascript
[02:36]DOTA2亚洲邀请赛小组赛精彩集锦:EE凭借法力虚空拿下4杀
2017/03/30 DOTA
[00:12]DAC2018 天才少年转战三号位,他的SOLO是否仍如昔日般强大?
2018/04/06 DOTA
SublimeText 2编译python出错的解决方法(The system cannot find the file specified)
2013/11/27 Python
详解Python的Django框架中Manager方法的使用
2015/07/21 Python
Python编程之序列操作实例详解
2017/07/22 Python
定制FileField中的上传文件名称实例
2017/08/23 Python
Python打印输出数组中全部元素
2018/03/13 Python
python3.7简单的爬虫实例详解
2019/07/08 Python
基于python实现文件加密功能
2020/01/06 Python
Python制作简单的剪刀石头布游戏
2020/12/10 Python
小程序瀑布流解决左右两边高度差距过大的问题
2019/02/20 HTML / CSS
写clone()方法时,通常都有一行代码,是什么?
2012/10/31 面试题
演讲稿怎么写
2014/01/07 职场文书
yy婚礼司仪主持词
2014/03/14 职场文书
远程网络教育毕业生自我鉴定
2014/04/14 职场文书
2015年员工试用期工作总结
2015/05/28 职场文书
力克胡哲观后感
2015/06/10 职场文书
市直属机关2016年主题党日活动总结
2016/04/05 职场文书
送给火锅店的创意营销方案!
2019/07/08 职场文书
Go语言切片前或中间插入项与内置copy()函数详解
2021/04/27 Golang