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 异步调用框架 (Part 1 - 问题 &amp; 场景)
Aug 03 Javascript
JS判断是否为数字,是否为整数,是否为浮点数的代码
Apr 24 Javascript
jquery遍历checkbox的注意事项说明
Feb 21 Javascript
javascript模拟实现ajax加载框实例
Oct 15 Javascript
jQuery表格行上移下移和置顶的实现方法
Oct 08 Javascript
JavaScript 轮播图和自定义滚动条配合鼠标滚轮分享代码贴
Oct 28 Javascript
vue父组件点击触发子组件事件的实例讲解
Feb 08 Javascript
解决layui 复选框等内置控件不显示的问题
Aug 14 Javascript
浅析微信扫码登录原理(小结)
Oct 29 Javascript
如何解决.vue文件url引用文件的问题
Jan 18 Javascript
Vue的click事件防抖和节流处理详解
Nov 13 Javascript
Node.js 中如何收集和解析命令行参数
Jan 08 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
yii框架源码分析之创建controller代码
2011/06/28 PHP
PHP类继承 extends使用介绍
2014/01/14 PHP
PHP 进度条函数的简单实例
2017/09/19 PHP
学习YUI.Ext 第七天--关于View&amp;JSONView
2007/03/10 Javascript
JQuery autocomplete 使用手册
2010/04/01 Javascript
javascript开发中因空格引发的错误
2010/11/08 Javascript
JQuery操作元素的css样式
2015/03/09 Javascript
QQ登录背景闪动效果附效果演示源码下载
2015/09/22 Javascript
浅谈js中test()函数在正则中的使用
2016/08/19 Javascript
Jquery针对tr td的一些实用操作方法(必看篇)
2016/10/05 Javascript
Centos6.8下Node.js安装教程
2017/05/12 Javascript
React服务端渲染(总结)
2017/07/01 Javascript
解决JS外部文件中文注释出现乱码问题
2017/07/09 Javascript
element-ui 限制日期选择的方法(datepicker)
2018/05/16 Javascript
angularJs中$http获取后台数据的实例讲解
2018/08/08 Javascript
React 全自动数据表格组件——BodeGrid的实现思路
2019/06/12 Javascript
ES6 proxy和reflect的使用方法与应用实例分析
2020/02/15 Javascript
JavaScript异步操作的几种常见处理方法实例总结
2020/05/11 Javascript
如何利用JavaScript编写更好的条件语句详解
2020/08/10 Javascript
python实现ftp客户端示例分享
2014/02/17 Python
Python使用xlrd读取Excel格式文件的方法
2015/03/10 Python
python实现的简单抽奖系统实例
2015/05/22 Python
python数据处理实战(必看篇)
2017/06/11 Python
python下PyGame的下载与安装过程及遇到问题
2019/08/04 Python
keras 如何保存最佳的训练模型
2020/05/25 Python
如何解决flask修改静态资源后缓存文件不能及时更改问题
2020/08/02 Python
Ubuntu权限不足无法创建文件夹解决方案
2020/11/14 Python
实习护理工作自我评价
2013/09/25 职场文书
四年的个人工作自我评价
2013/12/10 职场文书
计算机学生求职信范文
2014/01/30 职场文书
服装仓管员岗位职责
2014/06/17 职场文书
证婚人致辞精选
2015/07/28 职场文书
年中了,该如何写好个人述职报告?
2019/07/02 职场文书
python办公自动化之excel的操作
2021/05/23 Python
Nginx中使用Lua脚本与图片的缩略图处理的实现
2022/03/18 Servers
MySQL插入数据与查询数据
2022/03/25 MySQL