浅谈Javascript中substr和substring的区别


Posted in Javascript onSeptember 30, 2015

 由于在项目中有需要对字符串进行截取,然后手残使用了IDE自动提示的substr,没想那么多以为substr和substring没多大区别。

然而并不是,且听我一一道来。

1. substr(index, length)

  从起始索引号提取字符串中指定数目的字符。

  substr方法可以传入两个参数 index和length。index是起始位,length是截取的长度。

  当index是个非负整数时:

    a. 如果不传入参数,则得到的还是字符串本身。

        如: "abcdefg".substr() -> "abcdefg"

    b. 如果只传入一个参数,即index,则默认截取到字符串最后一位。

        如: "abcdefg".substr(2) -> "defg".

  当index是个负整数时:

    c. 如果传入一个负整数下标位则从后往前数,起始位为1,到达负整数绝对值的下标位,截取则是从前往后。

        如: "abcdefg".substr(-2) -> "fg"  <=> "abcdefg".substr(-2 + "abcdefg".length)

2. substring(start, end)

  提取字符串中介于两个指定下标之间的字符。

  substring也是传入两个参数,但是这两个参数都是下标数字,下标从0开始计算,截取的长度是这两个下标的差

  可以记作"含头不含尾"

  如: "abcdefg".substring(2,4) -> "cd"

Javascript 相关文章推荐
从Ajax到JQuery Ajax学习
Feb 14 Javascript
Javascript isArray 数组类型检测函数
Oct 08 Javascript
jQuery第三课 修改元素属性及内容的代码
Mar 14 Javascript
jQery使网页在显示器上居中显示适用于任何分辨率
Jun 09 Javascript
21个JavaScript事件(Events)属性汇总
Dec 02 Javascript
HTML5 Shiv完美解决IE(IE6/IE7/IE8)不兼容HTML5标签的方法
Nov 25 Javascript
第四篇Bootstrap网格系统偏移列和嵌套列
Jun 21 Javascript
JavaScript实现无穷滚动加载数据
May 06 Javascript
vue.js内部自定义指令与全局自定义指令的实现详解(利用directive)
Jul 11 Javascript
深入探究angular2 UI组件之primeNG用法
Jul 26 Javascript
详解babel升级到7.X采坑总结
May 12 Javascript
浅谈Layui的eleTree树式选择器使用方法
Sep 25 Javascript
jQuery复制表单元素附源码分享效果演示
Sep 30 #Javascript
js实现创建删除html元素小结
Sep 30 #Javascript
node.js下LDAP查询实例分享
Sep 30 #Javascript
Javascript中replace()小结
Sep 30 #Javascript
利用jQuery实现漂亮的圆形进度条倒计时插件
Sep 30 #Javascript
谈谈JavaScript异步函数发展历程
Sep 29 #Javascript
JavaScript 对象深入学习总结(经典)
Sep 29 #Javascript
You might like
PHP微信PC二维码登陆的实现思路
2017/07/13 PHP
jQuery $.data()方法使用注意细节
2012/12/31 Javascript
使用jquery mobile做幻灯播放效果实现步骤
2013/01/04 Javascript
bootstrapfileinput实现文件自动上传
2016/11/08 Javascript
angular2倒计时组件使用详解
2017/01/12 Javascript
通过示例彻底搞懂js闭包
2017/08/10 Javascript
JS扩展String.prototype.format字符串拼接的功能
2018/03/09 Javascript
Angular4 反向代理Details实践
2018/05/30 Javascript
详解angular2如何手动点击特定元素上的点击事件
2018/10/16 Javascript
vue2配置scss的方法步骤
2019/06/06 Javascript
Python threading多线程编程实例
2014/09/18 Python
Python使用xlrd读取Excel格式文件的方法
2015/03/10 Python
Python中subprocess模块用法实例详解
2015/05/20 Python
举例讲解Python编程中对线程锁的使用
2016/07/12 Python
深入理解Python中变量赋值的问题
2017/01/12 Python
Python插件virtualenv搭建虚拟环境
2017/11/20 Python
Python数字图像处理之霍夫线变换实现详解
2018/01/12 Python
Python利用ORM控制MongoDB(MongoEngine)的步骤全纪录
2018/09/13 Python
Face++ API实现手势识别系统设计
2018/11/21 Python
python 获取图片分辨率的方法
2019/01/08 Python
Python的Tkinter点击按钮触发事件的例子
2019/07/19 Python
tensorflow获取预训练模型某层参数并赋值到当前网络指定层方式
2020/01/24 Python
Django ORM 查询表中某列字段值的方法
2020/04/30 Python
结束运行python的方法
2020/06/16 Python
python IP地址转整数
2020/11/20 Python
css3 给背景设置渐变色的方法
2019/09/12 HTML / CSS
Html5 webRTC简单实现视频调用的示例代码
2020/09/23 HTML / CSS
PHP两种查询函数array/row的区别
2013/06/03 面试题
大学生个人简历自我评价
2013/11/16 职场文书
保密承诺书
2014/03/27 职场文书
高中同学会活动方案
2014/08/14 职场文书
党的群众路线教育实践活动个人对照检查剖析材料
2014/09/23 职场文书
技术股份合作协议书
2014/10/05 职场文书
python生成随机数、随机字符、随机字符串
2021/04/06 Python
Oracle设置DB、监听和EM开机启动的方法
2021/04/25 Oracle
Oracle 临时表空间SQL语句的实现
2021/09/25 Oracle