浅谈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 相关文章推荐
jquery ui dialog里调用datepicker的问题
Aug 06 Javascript
十个优秀的Ajax/Javascript实例网站收集
Mar 31 Javascript
容易被忽略的JS脚本特性
Sep 13 Javascript
简单的jquery左侧导航栏和页面选中效果
Aug 21 Javascript
3种Jquery限制文本框只能输入数字字母的方法
Dec 03 Javascript
jquery实现标题字体变换的滑动门菜单效果
Sep 07 Javascript
jQuery使用Selectator插件实现多选下拉列表过滤框(附源码下载)
Apr 08 Javascript
EasyUI实现下拉框多选功能
Nov 07 Javascript
原生JS实现自定义下拉单选选择框功能
Oct 12 Javascript
node+express框架中连接使用mysql(经验总结)
Nov 10 Javascript
微信小程序 动态修改页面数据及参数传递过程详解
Sep 27 Javascript
javascript-hashchange事件和历史状态管理实例分析
Apr 18 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
mysql_num_rows VS COUNT 效率问题分析
2011/04/23 PHP
在PHP模板引擎smarty生成随机数的方法和math函数详解
2014/04/24 PHP
PHP加密解密实例分析
2015/12/25 PHP
Laravel核心解读之异常处理的实践过程
2019/02/24 PHP
PHP正则验证字符串是否为数字的两种方法并附常用正则
2019/02/27 PHP
IE中jscript/javascript的条件编译
2006/09/07 Javascript
Javascript 文件夹选择框的两种解决方案
2009/07/01 Javascript
js实现页面打印功能实例代码(附去页眉页脚功能代码)
2009/12/15 Javascript
使用jquery.qrcode生成彩色二维码实例
2014/08/08 Javascript
javascript日期操作详解(脚本之家整理)
2015/09/05 Javascript
Jquery中巧用Ajax的beforeSend方法
2016/01/20 Javascript
bootstrap组件之导航组件使用方法
2017/01/19 Javascript
canvas雪花效果核心代码分享
2017/02/19 Javascript
详解cordova打包成webapp的方法
2017/10/18 Javascript
angularjs实现对表单输入改变的监控(ng-change和watch两种方式)
2018/08/29 Javascript
vue指令做滚动加载和监听等
2019/05/26 Javascript
vue中typescript装饰器的使用方法超实用教程
2019/06/17 Javascript
使用Layui搭建后台管理界面的操作方法
2019/09/20 Javascript
js判断非127开头的IP地址的实例代码
2020/01/05 Javascript
Js生成随机数/随机字符串的方法小结【5种方法】
2020/05/27 Javascript
vue实现把接口单独存放在一个文件方式
2020/08/13 Javascript
JS访问对象两种方式区别解析
2020/08/29 Javascript
python根据出生年份简单计算生肖的方法
2015/03/27 Python
python简单实例训练(21~30)
2017/11/15 Python
在Pycharm terminal中字体大小设置的方法
2019/01/16 Python
利用Python检测URL状态
2019/07/31 Python
python写入数据到csv或xlsx文件的3种方法
2019/08/23 Python
详解HTML5中download属性的应用
2015/08/06 HTML / CSS
用C或者C++语言实现SOCKET通信
2015/02/24 面试题
美术专业学生个人自我评价
2013/09/19 职场文书
毕业生文员求职信
2013/11/03 职场文书
开学季活动策划方案
2014/02/28 职场文书
优秀班主任事迹材料
2014/12/16 职场文书
公务员政审个人总结
2015/02/12 职场文书
蔬果开业典礼发言稿应该怎么写?
2019/09/03 职场文书
Python内置包对JSON文件数据进行编码和解码
2022/04/12 Python