javascript中substring()、substr()、slice()的区别


Posted in Javascript onAugust 30, 2015

stringObject.substring(start,stop) 用于提取字符串中介于两个指定下标之间的字符。

start必需。一个非负的整数,规定要提取的子串的第一个字符在 stringObject 中的位置。

stop可选。一个非负的整数,比要提取的子串的最后一个字符在 stringObject 中的位置多 1。如果省略该参数,那么返回的子串会一直到字符串的结尾。

start从0开始 到stop(不包含stop)结束 不接受负的参数。

stringObject.substr(start,length)可在字符串中抽取从start下标开始的指定数目的字符

start 必需。要抽取的子串的起始下标。必须是数值。如果是负数,那么该参数声明从字符串的尾部开始算起的位置。也就是说,-1 指字符串中最后一个字符,-2 指倒数第二个字符,以此类推。

length 可选。子串中的字符数。必须是数值。如果省略了该参数,那么返回从 stringObject 的开始位置到结尾的字串。

stringObject.slice(start,end)提取字符串的某个部分,并以新的字符串返回被提取的部分

start 要抽取的片断的起始下标。如果是负数,则该参数规定的是从字符串的尾部开始算起的位置。也就是说,-1 指字符串的最后一个字符,-2 指倒数第二个字符,以此类推。

end 紧接着要抽取的片段的结尾的下标。若未指定此参数,则要提取的子串包括 start 到原字符串结尾的字符串。如果该参数是负数,那么它规定的是从字符串的尾部开始算起的位置。

返回新的字符串包括字符串 stringObject 从 start 开始(包括 start)到 end 结束(不包括 end)为止的所有字符

string.slice()
string.substring()
string.substr()
 
var stringValue = “hello world”;
alert(stringValue.slice(3));          //”lo world”
alert(stringValue.substring(3));      //”lo world”
alert(stringValue.substr(3));        //”lo world”
alert(stringValue.slice(3,7));         //”lo w”
alert(stringValue.substring(3,7));    //”lo w”
alert(stringValue.substr(3,7));       //”lo worl”

三者如果只有一个参数n 则会从第n个位置开始返回剩余字符串(从0开始计算位置)

如果有两个参数n,m,slice与substring会从第n个位置开始返回到第m个位置(不包括第m位置)的字符串,而substr会返回从第n个位置开始的m个字符。
———————————————————————————————
 

string.slice()
string.substring()
string.substr()
var stringValue = “hello world”;
alert(stringValue.slice(-3));          //”rld”
alert(stringValue.substring(-3));      //”hello world”
alert(stringValue.substr(-3));        //”rld”
alert(stringValue.slice(3,-4));         //”lo w”
alert(stringValue.substring(3,-4));    //”hel”
alert(stringValue.substr(3,-4));       //”"(空字符串)

当参数是负值情况下,slice将传入负值与字符串长度(string.length)相加,substr会将负的第一个参数加上字符串长度,第二个转换为0,substring会将所有负值都转换成0。

IE的JavaScript实现在处理向substr()方法传递负值的情况时存在问题,它会返回原始的字符串。

Javascript 相关文章推荐
javascript 24小时弹出一次的代码(利用cookies)
Sep 03 Javascript
拖动布局之保存布局页面cookies篇
Oct 29 Javascript
让你的博客飘雪花超出屏幕依然看得见
Jan 04 Javascript
用jquery实现的一个超级简单的下拉菜单
May 18 Javascript
2014年最火的Node.JS后端框架推荐
Oct 27 Javascript
JavaScript中定义类的方式详解
Jan 07 Javascript
Angular.js回顾ng-app和ng-model使用技巧
Apr 26 Javascript
JS完成画圆圈的小球
Mar 07 Javascript
Vue组件化通讯的实例代码
Jun 23 Javascript
vue项目中vue-i18n和element-ui国际化开发实现过程
Apr 25 Javascript
JS实现的文件拖拽上传功能示例
May 21 Javascript
Node.js 深度调试方法解析
Jul 28 Javascript
IE8下jQuery改变png图片透明度时出现的黑边
Aug 30 #Javascript
javascript中sort() 方法使用详解
Aug 30 #Javascript
javascript中的正则表达式使用详解
Aug 30 #Javascript
jQuery鼠标事件汇总
Aug 30 #Javascript
简单谈谈javascript中的变量、作用域和内存问题
Aug 30 #Javascript
jquery专业的导航菜单特效代码分享
Aug 29 #Javascript
js实现基于正则表达式的轻量提示插件
Aug 29 #Javascript
You might like
php对mongodb的扩展(初出茅庐)
2012/11/11 PHP
PHP在不同页面间传递Json数据示例代码
2013/06/08 PHP
PHP中func_get_args(),func_get_arg(),func_num_args()的区别
2013/09/30 PHP
php设置静态内容缓存时间的方法
2014/12/01 PHP
Zend Framework入门知识点小结
2016/03/19 PHP
PHP中获取文件创建日期、修改日期、访问时间的方法
2016/11/05 PHP
CL vs ForZe BO5 第二场 2.13
2021/03/10 DOTA
点击文章内容处弹出页面代码
2009/10/01 Javascript
jquery 利用show和hidden实现级联菜单示例代码
2013/08/09 Javascript
JavaScript从数组中删除指定值元素的方法
2015/03/18 Javascript
简介JavaScript中的unshift()方法的使用
2015/06/09 Javascript
JavaScript中的原型继承基础学习教程
2016/05/06 Javascript
JavaScript中的ParseInt("08")和“09”返回0的原因分析及解决办法
2016/05/19 Javascript
利用Chrome DevTools直接调试Node.js和JavaScript的方法详解(并行)
2017/02/16 Javascript
从零学习node.js之简易的网络爬虫(四)
2017/02/22 Javascript
React 项目迁移 Webpack Babel7的实现
2018/09/12 Javascript
浅谈Node框架接入ELK实践总结
2019/02/22 Javascript
详解NodeJS Https HSM双向认证实现
2019/03/12 NodeJs
javascript实现点击按钮切换轮播图功能
2020/09/23 Javascript
[40:55]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#4Newbee VS Fnatic
2016/03/03 DOTA
numpy中索引和切片详解
2017/12/15 Python
Python去除、替换字符串空格的处理方法
2018/04/01 Python
python 获取键盘输入,同时有超时的功能示例
2018/11/13 Python
python通过tcp发送xml报文的方法
2018/12/28 Python
python 实现一次性在文件中写入多行的方法
2019/01/28 Python
python 进程的几种创建方式详解
2019/08/29 Python
python打印直角三角形与等腰三角形实例代码
2019/10/20 Python
tensorflow 重置/清除计算图的实现
2020/01/19 Python
Viking比利时:购买办公用品
2019/10/30 全球购物
党校培训思想汇报
2014/01/03 职场文书
小学生安全保证书
2014/02/01 职场文书
教师通用专业自荐书范文
2014/02/11 职场文书
食品安全承诺书范文
2014/08/29 职场文书
2016大学迎新欢迎词
2015/09/29 职场文书
goland 设置project gopath的操作
2021/05/06 Golang
Vue.Draggable实现交换位置
2022/04/07 Vue.js