浅谈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 相关文章推荐
JS检测输入字符是否包含非法字符的示例代码
Feb 11 Javascript
jQuery的图片滑块焦点图插件整理推荐
Dec 07 Javascript
jQuery表单美化插件jqTransform使用详解
Apr 12 Javascript
JQuery使用$.ajax和checkbox实现下次不在通知功能
Apr 16 Javascript
谈谈我对JavaScript原型和闭包系列理解(随手笔记6)
Dec 20 Javascript
javascript设计模式之module(模块)模式
Aug 19 Javascript
移动端滑动插件Swipe教程
Oct 16 Javascript
jquery获取table指定行和列的数据方法(当前选中行、列)
Nov 07 Javascript
原生js实现放大镜特效
Mar 08 Javascript
jQury Ajax使用Token验证身份实例代码
Sep 22 Javascript
微信小程序实现单选功能
Oct 30 Javascript
JS实现联想、自动补齐国家或地区名称的功能
Jul 07 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实现时间比较和时间差计算的方法示例
2017/07/24 PHP
jQuery的Ajax时无响应数据的解决方法
2010/05/25 Javascript
在js(jquery)中获得文本框焦点和失去焦点的方法
2012/12/04 Javascript
JS基于FileSystemObject创建一个指定路径的TXT文本文件
2015/08/05 Javascript
JavaScript原生xmlHttp与jquery的ajax方法json数据格式实例
2015/12/04 Javascript
使用OpenLayers3 添加地图鼠标右键菜单
2015/12/29 Javascript
jQuery实现图像旋转动画效果
2016/05/29 Javascript
javascirpt实现2个iframe之间传值的方法
2016/06/30 Javascript
原生js实现旋转木马轮播图效果
2017/02/27 Javascript
js获取指定时间的前几秒
2017/04/05 Javascript
微信小程序实现横向增长表格的方法
2018/07/24 Javascript
当vue路由变化时,改变导航栏的样式方法
2018/08/22 Javascript
JS实现旋转木马轮播图
2020/01/01 Javascript
JS面向对象编程实现的Tab选项卡案例详解
2020/03/03 Javascript
详解JavaScript 作用域
2020/07/14 Javascript
如何利用javascript接收json信息并进行处理
2020/08/06 Javascript
Vue实现图书管理案例
2021/01/20 Vue.js
[00:32]2018DOTA2亚洲邀请赛出场——VP
2018/04/04 DOTA
Python subprocess模块学习总结
2014/03/13 Python
举例讲解Python中的Null模式与桥接模式编程
2016/02/02 Python
Python解析json文件相关知识学习
2016/03/01 Python
简单谈谈Python中的闭包
2016/11/30 Python
tensorflow 使用flags定义命令行参数的方法
2018/04/23 Python
Python3.6使用tesseract-ocr的正确方法
2018/10/17 Python
Django REST Framework序列化外键获取外键的值方法
2019/07/26 Python
python return逻辑判断表达式实现解析
2019/12/02 Python
如何基于python实现脚本加密
2019/12/28 Python
python实现随机加减法生成器
2020/02/24 Python
python3爬虫GIL修改多线程实例讲解
2020/11/24 Python
MoviePy常用剪辑类及Python视频剪辑自动化
2020/12/18 Python
HTML5 input placeholder 颜色修改示例
2014/05/30 HTML / CSS
uniapp+Html5端实现PC端适配
2020/07/15 HTML / CSS
init进程的作用
2015/08/20 面试题
领导干部培训感言
2014/01/23 职场文书
2015最新学生自我评价范文
2015/03/03 职场文书
2019开业庆典剪彩仪式主持词!
2019/07/22 职场文书