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 相关文章推荐
jQuery中DOM操作实例分析
Jan 23 Javascript
jQuery实现contains方法不区分大小写的方法
Feb 13 Javascript
基于javascript实现单选及多选的向右和向左移动实例
Jul 25 Javascript
浅析javascript的return语句
Dec 15 Javascript
javascript检测flash插件是否被禁用的方法
Jan 14 Javascript
Bootstrap每天必学之响应式导航、轮播图
Apr 25 Javascript
JavaScript类型系统之布尔Boolean类型详解
Jun 26 Javascript
浅谈JQ中mouseover和mouseenter的区别
Sep 13 Javascript
Easyui在treegrid添加控件的实现方法
Jun 23 Javascript
webstorm和.vue中es6语法报错的解决方法
May 08 Javascript
vxe-table vue table 表格组件功能
May 26 Javascript
JS如何判断对象是否包含某个属性
Aug 29 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生成二维码的两种方法(带logo图像)
2014/03/14 PHP
访问编码后的中文URL返回404错误的解决方法
2014/08/20 PHP
phpMyAdmin安装并配置允许空密码登录
2015/07/04 PHP
详解WordPress中提醒安装插件以及隐藏插件的功能实现
2015/12/25 PHP
给大家分享几个常用的PHP函数
2017/01/15 PHP
Ajax中的JSON格式与php传输过程全面解析
2017/11/14 PHP
Laravel 队列使用的实现
2019/01/08 PHP
php快速导入大量数据的实例方法
2019/09/23 PHP
Laravel实现ApiToken认证请求
2019/10/14 PHP
JQUERY获取form表单值的代码
2010/07/17 Javascript
jquer之ajaxQueue简单实现代码
2011/09/15 Javascript
得到jQuery detach()后节点中的某个值实现代码
2013/02/05 Javascript
JS解析XML实例分析
2015/01/30 Javascript
jQ处理xml文件和xml字符串的方法(详解)
2016/11/22 Javascript
基于jQuery插件jqzoom实现的图片放大镜效果示例
2017/01/23 Javascript
老生常谈jquery中detach()和remove()的区别
2017/03/02 Javascript
jQuery 循环遍历改变a标签的href(实例讲解)
2017/07/12 jQuery
bootstrap实现二级下拉菜单效果
2017/11/23 Javascript
Vue2 模板template的四种写法总结
2018/02/23 Javascript
js实现按钮开关单机下拉菜单效果
2018/11/22 Javascript
vue.js中使用echarts实现数据动态刷新功能
2019/04/16 Javascript
Javascript执行流程细节原理解析
2020/05/14 Javascript
python私有属性和方法实例分析
2015/01/15 Python
Python网络爬虫神器PyQuery的基本使用教程
2018/02/03 Python
tensorflow学习笔记之mnist的卷积神经网络实例
2018/04/15 Python
Python 绘图库 Matplotlib 入门教程
2018/04/19 Python
python整小时 整天时间戳获取算法示例
2019/02/20 Python
物流专业大学生的自我鉴定
2013/11/13 职场文书
售后专员岗位职责
2013/12/08 职场文书
模具设计与制造专业推荐信
2014/02/16 职场文书
打架检讨书
2015/01/27 职场文书
婚宴新娘致辞
2015/07/28 职场文书
企业廉洁教育心得体会
2016/01/20 职场文书
五年级数学教学反思
2016/02/16 职场文书
2016年学校综治宣传月活动总结
2016/03/16 职场文书
考教师资格证不要错过的4个最佳时机
2019/07/17 职场文书