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 相关文章推荐
firefox中JS读取XML文件
Dec 21 Javascript
[原创]IE view-source 无法查看看源码 JavaScript看网页源码
Jul 19 Javascript
js null undefined 空区别说明
Jun 13 Javascript
Jquery中删除元素的实现代码
Dec 29 Javascript
jQuery实现向下滑出的二级菜单效果实例
Aug 22 Javascript
谈谈因Vue.js引发关于getter和setter的思考
Dec 02 Javascript
微信小程序 下拉菜单简单实例
Apr 13 Javascript
详解AngularJS之$window窗口对象
Jan 17 Javascript
了解JavaScript表单操作和表单域
May 27 Javascript
layui table复选框禁止某几条勾选的实例
Sep 20 Javascript
javascript使用canvas实现饼状图效果
Sep 08 Javascript
绘制微信小程序验证码功能的实例代码
Jan 05 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获取数组中重复数据的两种方法
2013/06/28 PHP
PHP中开启gzip压缩的2种方法
2015/01/31 PHP
thinkPHP模板中for循环与switch语句用法示例
2016/11/30 PHP
php实现在线考试系统【附源码】
2018/09/18 PHP
编辑浪子版表单验证类
2007/05/12 Javascript
Prototype Object对象 学习
2009/07/12 Javascript
基于jQuery的的一个隔行变色,鼠标移动变色的小插件
2010/07/06 Javascript
JS 作用域与作用域链详解
2015/04/07 Javascript
JavaScript中绑定事件的三种方式及去除绑定
2016/11/05 Javascript
AngularJS改变元素显示状态
2017/04/20 Javascript
JS实现简单抖动效果
2017/06/01 Javascript
详解Js中的模块化是如何实现的
2017/10/18 Javascript
webpack配置导致字体图标无法显示的解决方法
2018/03/06 Javascript
详解Vue中watch对象内属性的方法
2019/02/01 Javascript
微信小程序实现页面分享onShareAppMessage
2019/08/12 Javascript
利用JS如何获取form表单数据
2019/12/19 Javascript
js+html+css实现手动轮播和自动轮播
2020/12/30 Javascript
vue3.0中友好使用antdv示例详解
2021/01/05 Vue.js
python基于multiprocessing的多进程创建方法
2015/06/04 Python
Python处理JSON时的值报错及编码报错的两则解决实录
2016/06/26 Python
Django 导出 Excel 代码的实例详解
2017/08/11 Python
Python合并多个Excel数据的方法
2018/07/16 Python
Python minidom模块用法示例【DOM写入和解析XML】
2019/03/25 Python
利用django model save方法对未更改的字段依然进行了保存
2020/03/28 Python
解决redis与Python交互取出来的是bytes类型的问题
2020/07/16 Python
北美个性化礼品商店:Things Remembered
2018/06/12 全球购物
Antonioli美国在线商店:时尚前卫奢华
2019/07/29 全球购物
公司市场部岗位职责
2013/12/02 职场文书
大学生工作求职信
2014/06/23 职场文书
学习保证书怎么写
2015/02/26 职场文书
2015年教师节演讲稿范文
2015/03/19 职场文书
迎新生晚会主持词
2015/06/30 职场文书
答谢酒会主持词
2015/07/02 职场文书
Python自动化工具之实现Excel转Markdown表格
2022/04/08 Python
深入理解 Golang 的字符串
2022/05/04 Golang
Oracle中日期的使用方法实例
2022/07/07 Oracle