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的合并table相同单元格的插件(精简版)
Apr 05 Javascript
js实现简洁的滑动门菜单(选项卡)效果代码
Sep 04 Javascript
jquery限定文本框只能输入数字(整数和小数)
Jan 08 Javascript
最棒的Angular2表格控件
Aug 10 Javascript
node通过npm写一个cli命令行工具
Oct 12 Javascript
微信小程序页面跳转功能之从列表的item项跳转到下一个页面的方法
Nov 27 Javascript
Node.js利用console输出日志文件的方法示例
Apr 27 Javascript
Vue子组件向父组件通信与父组件调用子组件中的方法
Jun 22 Javascript
bootstrap动态调用select下拉框的实例代码
Aug 09 Javascript
详解多页应用 Webpack4 配置优化与踩坑记录
Oct 16 Javascript
通过实例解析JavaScript for in及for of区别
Jun 15 Javascript
关于Vue中$refs的探索浅析
Nov 05 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
laravel Model 执行事务的实现
2019/10/10 PHP
javascript 中对象的继承〔转贴〕
2007/01/22 Javascript
Mootools 1.2教程 类(一)
2009/09/15 Javascript
javascript一个无懈可击的实例化XMLHttpRequest的方法
2010/10/13 Javascript
原生js实现改变随意改变div属性style的名称和值的结果
2013/09/26 Javascript
node.js中的buffer.Buffer.byteLength方法使用说明
2014/12/10 Javascript
jQuery实现的网页右下角tab样式在线客服效果代码
2015/10/23 Javascript
JavaScript中的this到底是什么(一)
2015/12/09 Javascript
JavaScript常用判断写法大全(推荐)
2016/05/30 Javascript
详解Node.js中的事件机制
2016/09/22 Javascript
Ant Design Pro 下实现文件下载的实现代码
2019/12/03 Javascript
vue使用axios实现excel文件下载的功能
2020/07/16 Javascript
[02:06]DOTA2英雄基础教程 暗影萨满
2013/12/16 DOTA
Python输出9*9乘法表的方法
2015/05/25 Python
python中利用await关键字如何等待Future对象完成详解
2017/09/07 Python
python 信息同时输出到控制台与文件的实例讲解
2018/05/11 Python
在双python下设置python3为默认的方法
2018/10/31 Python
详解Python列表赋值复制深拷贝及5种浅拷贝
2019/05/15 Python
python3 图片 4通道转成3通道 1通道转成3通道 图片压缩实例
2019/12/03 Python
python上下文管理器异常问题解决方法
2021/02/07 Python
含精油的天然有机化妆品:Indemne
2019/08/27 全球购物
PatPat德国:妈妈的每日优惠
2019/10/02 全球购物
康拓普公司Java笔面试
2016/09/23 面试题
新闻专业个人自我评价
2013/09/21 职场文书
工程测量与监理专业应届生求职信
2013/11/27 职场文书
学习2014年全国两会心得体会
2014/03/12 职场文书
总经理助理的职责
2014/03/14 职场文书
廉政文化进校园广播稿
2014/10/20 职场文书
幼儿园2014年度工作总结
2014/11/10 职场文书
学校元旦晚会开场白
2014/12/14 职场文书
校长个人总结
2015/03/03 职场文书
植树节新闻稿
2015/07/17 职场文书
生产设备维护保养制度
2015/08/06 职场文书
初级职称评定工作总结
2015/08/13 职场文书
导游词之河姆渡遗址博物馆
2019/10/10 职场文书
go语言map与string的相互转换的实现
2021/04/07 Golang