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 组件之旅(四):测试 JavaScript 组件
Oct 28 Javascript
清空上传控件input file的值
Jul 03 Javascript
JS重要知识点小结
Nov 06 Javascript
前端开发过程中浏览器版本的两种判定方法
Oct 30 Javascript
css结合js制作下拉菜单示例代码
Feb 27 Javascript
jquery重复提交请求的原因浅析
May 23 Javascript
解决js下referer兼容各大浏览器的方法
Nov 03 Javascript
jQuery仿淘宝网产品品牌隐藏与显示效果
Sep 01 Javascript
jQuery实现简单滚动动画效果
Apr 07 Javascript
浅析jquery数组删除指定元素的方法:grep()
May 19 Javascript
vuex学习之Actions的用法详解
Aug 29 Javascript
JavaScript实现前端倒计时效果
Feb 09 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
PHP3 safe_mode 失效漏洞
2006/10/09 PHP
php 中文字符入库或显示乱码问题的解决方法
2010/04/12 PHP
解析php中如何调用用户自定义函数
2013/08/06 PHP
使用PHP下载CSS文件中的图片的代码
2013/09/24 PHP
教你如何快捷的使用cmd访问mysql小技巧
2014/05/26 PHP
仿dedecms下拉分页样式修改的thinkphp分页类实例
2014/10/30 PHP
简单实现PHP留言板功能
2016/12/21 PHP
CodeIgniter整合Smarty的方法详解
2017/08/25 PHP
ExtJS 入门
2010/10/29 Javascript
jQuery1.6 使用方法一
2011/11/23 Javascript
用jquery的方法制作一个简单的导航栏
2014/06/23 Javascript
使用Chrome调试JavaScript的断点设置和调试技巧
2014/12/16 Javascript
谈谈对offsetleft兼容性的理解
2015/11/11 Javascript
纯js代码实现简单计算器
2015/12/02 Javascript
基于bootstrap实现bootstrap中文网巨幕效果
2017/05/02 Javascript
Angular 2父子组件数据传递之@ViewChild获取子组件详解
2017/07/04 Javascript
基于Webpack4和React hooks搭建项目的方法
2019/02/05 Javascript
vue-cli3单页构建大型项目方案
2020/04/07 Javascript
Vue时间轴 vue-light-timeline的用法说明
2020/10/29 Javascript
[02:45]DOTA2英雄基础教程 伐木机
2013/12/23 DOTA
python3之微信文章爬虫实例讲解
2017/07/12 Python
Django自定义manage命令实例代码
2018/02/11 Python
Django之编辑时根据条件跳转回原页面的方法
2019/08/21 Python
matplotlib quiver箭图绘制案例
2020/04/17 Python
python 如何设置守护进程
2020/10/29 Python
Jupyter Notebook安装及使用方法解析
2020/11/12 Python
介绍CSS3使用技巧5个
2009/04/02 HTML / CSS
html5时钟实现代码
2010/10/22 HTML / CSS
Canvas制作旋转的太极的示例
2018/03/09 HTML / CSS
企业宣传方案
2014/03/04 职场文书
企业标语大全
2014/07/01 职场文书
幽默自我介绍演讲稿
2014/08/21 职场文书
2014年重阳节敬老活动方案
2014/09/16 职场文书
会计工作态度自我评价
2015/03/06 职场文书
厉行节约工作总结
2015/08/12 职场文书
竞聘演讲报告:基本写作有哪些?附开头范文
2019/10/16 职场文书