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 相关文章推荐
如何判断微信内置浏览器(通过User Agent实现)
Sep 01 Javascript
jQuery实现form表单基于ajax无刷新提交方法详解
Dec 08 Javascript
input点击后placeholder中的提示消息消失
Jan 15 Javascript
实践中学习AngularJS表单
Mar 21 Javascript
jQuery实现的简单百分比进度条效果示例
Aug 01 Javascript
详解基于vue-cli配置移动端自适应
Jan 13 Javascript
vue渲染时闪烁{{}}的问题及解决方法
Mar 28 Javascript
详解Koa中更方便简单发送响应的方式
Jul 20 Javascript
JS实现根据指定值删除数组中的元素操作示例
Aug 02 Javascript
解决vue js IOS H5focus无法自动弹出键盘的问题
Aug 30 Javascript
es6 symbol的实现方法示例
Apr 02 Javascript
关于layui 实现点击按钮添加一行(方法渲染创建的table)
Sep 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
人工智能开始玩《星际争霸2》 你的操作跟得上吗?
2017/08/11 星际争霸
php下将图片以二进制存入mysql数据库中并显示的实现代码
2010/05/27 PHP
PHP学习散记_编码(json_encode 中文不显示)
2011/11/10 PHP
用PHP实现Ftp用户的在线管理
2012/02/16 PHP
PHP删除数组中的特定元素的代码
2012/06/28 PHP
php多个字符串替换成同一个的解决方法
2013/06/18 PHP
PHP中批量生成静态html(命令行下运行PHP)
2014/04/19 PHP
PHP简单选择排序算法实例
2015/01/26 PHP
ThinkPHP5框架缓存查询操作分析
2018/05/30 PHP
TP5(thinkPHP5框架)实现显示错误信息及行号功能的方法
2019/06/03 PHP
PHP+Apache实现二级域名之间共享cookie的方法
2019/07/24 PHP
Thinkphp5.0 框架的请求方式与响应方式分析
2019/10/14 PHP
关于JavaScript中原型继承中的一点思考
2012/07/25 Javascript
js判断字符长度以及中英文数字等
2013/12/31 Javascript
基于jquery实现全屏滚动效果
2015/11/26 Javascript
JavaScript资源预加载组件和滑屏组件的使用推荐
2016/03/10 Javascript
Three.js学习之几何形状
2016/08/01 Javascript
基于casperjs和resemble.js实现一个像素对比服务详解
2018/01/10 Javascript
使用watch监听路由变化和watch监听对象的实例
2018/02/24 Javascript
vue 自定义提示框(Toast)组件的实现代码
2018/08/17 Javascript
angular 实现同步验证器跨字段验证的方法
2019/04/11 Javascript
javascript中contains是否包含功能实现代码(扩展字符、数组、dom)
2020/04/07 Javascript
原生JS封装拖动验证滑块的实现代码示例
2020/06/01 Javascript
[06:40]2014DOTA2西雅图国际邀请赛 DK战队巡礼
2014/07/07 DOTA
编写Python脚本来实现最简单的FTP下载的教程
2015/05/04 Python
将string类型的数据类型转换为spark rdd时报错的解决方法
2019/02/18 Python
详解Python计算机视觉 图像扭曲(仿射扭曲)
2019/03/27 Python
Python3.5基础之NumPy模块的使用图文与实例详解
2019/04/24 Python
python根据多个文件名批量查找文件
2019/08/13 Python
基于python的selenium两种文件上传操作实现详解
2019/09/19 Python
Python如何实现线程间通信
2020/07/30 Python
python3.8动态人脸识别的实现示例
2020/09/21 Python
python解压zip包中文乱码解决方法
2020/11/27 Python
HTML5里的placeholder属性使用实例和美化显示效果的方法
2014/04/23 HTML / CSS
详解TypeScript中的类型保护
2021/04/29 Javascript
Python TypeError: ‘float‘ object is not subscriptable错误解决
2022/12/24 Python