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 相关文章推荐
IE6下javasc#ipt:void(0) 无效的解决方法
Dec 23 Javascript
javascript中不等于的代码是什么怎么写
Dec 29 Javascript
javascript在子页面中函数无法调试问题解决方法
Jan 17 Javascript
js调用打印机打印网页字体总是缩小一号的解决方法
Jan 24 Javascript
Node.js中使用Buffer编码、解码二进制数据详解
Aug 16 Javascript
在HTML代码中使用JavaScript代码的例子
Oct 16 Javascript
jquery实现向下滑出的二级导航下滑菜单效果
Aug 25 Javascript
JS获取数组最大值、最小值及长度的方法
Nov 24 Javascript
基于CSS3和jQuery实现跟随鼠标方位的Hover特效
Jul 25 Javascript
AngularJS中下拉框的高级用法示例
Oct 11 Javascript
vue中如何实现pdf文件预览的方法
Jul 12 Javascript
解决vue页面刷新,数据丢失的问题
Nov 24 Vue.js
举例讲解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网页木马一枚 附PHP木马的防范方法
2009/10/09 PHP
分享一下贝贝成长进度的php代码
2012/09/14 PHP
PHP的Laravel框架中使用AdminLTE模板来编写网站后台界面
2016/03/21 PHP
PHP foreach遍历多维数组实现方式
2016/11/16 PHP
利用PHP获取汉字首字母并且分组排序详解
2017/10/22 PHP
JQuery.ajax传递中文参数的解决方法 推荐
2011/03/28 Javascript
jquerymobile checkbox及时刷新才能获取其准确值
2012/04/14 Javascript
jquery Mobile入门—外部链接切换示例代码
2013/01/08 Javascript
关于jQuery $.isNumeric vs. $.isNaN vs. isNaN
2013/04/15 Javascript
js自动下载文件到本地的实现代码
2013/04/28 Javascript
JQUERY 获取IFrame中对象及获取其父窗口中对象示例
2013/08/19 Javascript
禁止页面刷新让F5快捷键及右键都无效
2014/01/22 Javascript
JavaScript插件化开发教程 (四)
2015/01/27 Javascript
jQuery检查事件是否触发的方法
2015/06/26 Javascript
通过BootStrap实现轮播图的实际应用
2016/09/26 Javascript
React-router中结合webpack实现按需加载实例
2017/05/25 Javascript
Vue路由前后端设计总结
2019/08/06 Javascript
Vue 用Vant实现时间选择器的示例代码
2019/10/25 Javascript
原生js实现碰撞检测
2020/03/12 Javascript
JavaScript设计模式--简单工厂模式定义与应用案例详解
2020/05/23 Javascript
解决vuex数据页面刷新后初始化操作
2020/07/26 Javascript
python获取元素在数组中索引号的方法
2015/07/15 Python
python write无法写入文件的解决方法
2019/01/23 Python
浅谈Scrapy网络爬虫框架的工作原理和数据采集
2019/02/07 Python
Python命令行参数解析工具 docopt 安装和应用过程详解
2019/09/26 Python
TensorFlow通过文件名/文件夹名获取标签,并加入队列的实现
2020/02/17 Python
关于matplotlib-legend 位置属性 loc 使用说明
2020/05/16 Python
Pycharm学生免费专业版安装教程的方法步骤
2020/09/24 Python
PyQt5的QWebEngineView使用示例
2020/10/20 Python
html5利用canvas实现颜色容差抠图功能
2019/12/23 HTML / CSS
《夕阳真美》教学反思
2014/04/27 职场文书
商务英语专业求职信
2014/06/26 职场文书
英文导游词
2015/02/13 职场文书
病人慰问信范文
2015/02/15 职场文书
人民币使用说明书
2019/04/17 职场文书
解决Vue+SpringBoot+Shiro跨域问题
2021/06/09 Vue.js