js substr、substring和slice使用说明小记


Posted in Javascript onSeptember 15, 2011

关于substr、substring和slice方法区别的文章,网上搜到了许多,文章内容也基本一致。而后,我将其中一篇文章中的代码挪到本地进行了测试,发现测试结果和原文中的有些出入。

我更相信自己亲自验证过后的代码,随后小记下来,供以后查阅。

substr

document.write("|" + str.substr(0,5) + "|" + "<br />"); 
document.write("|" + str.substr(0) + "|" + "<br />"); 
document.write("|" + str.substr(5,1) + "|" + "<br />"); 
document.write("|" + str.substr(-5,2) + "|" + "<br />"); 
document.write("|" + str.substr(-2,-5) + "|" + "<br />");

打印效果

|12345|
|123456|
|6|
IE: |12| Chrome: |23|

substring

document.write("|" + str.substring(0,5) + "|" + "<br />"); 
document.write("|" + str.substring(0) + "|" + "<br />"); 
document.write("|" + str.substring(5,1) + "|" + "<br />"); 
document.write("|" + str.substring(-5,2) + "|" + "<br />"); 
document.write("|" + str.substring(-2,-5) + "|" + "<br />"); 
document.write("|" + str.substring(2,-5) + "|" + "<br />");

打印效果
|12345|
|123456|
|2345|
|12|

|12|
slice

document.write("|" + str.slice(0,5) + "|" + "<br />"); 
document.write("|" + str.slice(0) + "|" + "<br />"); 
document.write("|" + str.slice(5,1) + "|" + "<br />"); 
document.write("|" + str.slice(-5,2) + "|" + "<br />"); 
document.write("|" + str.slice(-2,-5) + "|" + "<br />"); 
document.write("|" + str.slice(2,-5) + "|" + "<br />");

打印效果
|12345|
|123456|

|2|

||
如果你预想的结果和打印效果完全一致,那你的基本功一定不赖。如果多少有点犹豫或者结果出乎你的意料,那我的文章多少也有点用处了。

总结

substr

该方法的arg2和其它两个方法的arg2压根就代表不同意义,所以单独揪出来。

当arg1<0时,不同浏览器的结果不同。IE 直接将arg1改成0, Chrome 下标读取方式由原来的从左往右读改成从右往左读

substring和slice

(1)arg2 > arg1,即参数2大于参数1时

substring:自动颠倒位置,数值大的在arg2位置上,数值小的在arg1位置上
slice:返回空字符串

(2)对负数的处理

substring:将数值为负数的参数转换为0
slice:将数值为负数的参数转换为(字符串长度-参数数值)

Javascript 相关文章推荐
javascript面向对象的方式实现的弹出层效果代码
Jan 28 Javascript
关于可运行代码无法正常执行的使用说明
May 13 Javascript
JS读取cookies信息(记录用户名)
Jan 10 Javascript
jQuery性能优化的38个建议
Mar 04 Javascript
jQuery的观察者模式详解
Dec 22 Javascript
js预加载图片方法汇总
Jun 15 Javascript
js随机生成26个大小写字母
Feb 12 Javascript
JS实现数组的增删改查操作示例
Aug 29 Javascript
又拍云 Node.js 实现文件上传、删除功能
Oct 28 Javascript
一文快速了解JQuery中的AJAX
May 31 jQuery
使用apifm-wxapi模块中的问题及解决方法
Aug 05 Javascript
JavaScript实现京东快递单号查询
Nov 30 Javascript
javascript 闭包
Sep 15 #Javascript
用JQuery模仿淘宝的图片放大镜显示效果
Sep 15 #Javascript
document.getElementById介绍
Sep 13 #Javascript
动态创建样式表在各浏览器中的差异测试代码
Sep 13 #Javascript
contains和compareDocumentPosition 方法来确定是否HTML节点间的关系
Sep 13 #Javascript
jQuery中使用了document和window哪些属性和方法小结
Sep 13 #Javascript
从jQuery.camelCase()学习string.replace() 函数学习
Sep 13 #Javascript
You might like
PHP VS ASP
2006/10/09 PHP
基于mysql的论坛(3)
2006/10/09 PHP
win平台安装配置Nginx+php+mysql 环境
2016/01/12 PHP
PHP网页安全认证的实例详解
2017/09/28 PHP
Jquery选择器 $实现原理
2009/12/02 Javascript
跟着Jquery API学Jquery之一 选择器
2010/04/07 Javascript
jQuery插件datepicker 日期连续选择
2015/06/12 Javascript
javascript数组随机排序实例分析
2015/07/22 Javascript
通过学习bootstrop导航条学会修改bootstrop颜色基调
2017/06/11 Javascript
canvas+gif.js打造自己的数字雨头像的示例代码
2017/10/26 Javascript
基于JavaScript实现表格滚动分页
2017/11/22 Javascript
JS常见构造模式实例对比分析
2018/08/27 Javascript
浅谈webpack+react多页面开发终极架构
2018/11/11 Javascript
JS document对象简单用法完整示例
2020/01/14 Javascript
python在windows下实现备份程序实例
2014/07/04 Python
给Python入门者的一些编程建议
2015/06/15 Python
Windows上使用virtualenv搭建Python+Flask开发环境
2016/06/07 Python
Python SQLite3数据库日期与时间常见函数用法分析
2017/08/14 Python
Python实现PS滤镜Fish lens图像扭曲效果示例
2018/01/29 Python
Python实现微信中找回好友、群聊用户撤回的消息功能示例
2019/08/23 Python
Python模块 _winreg操作注册表
2020/02/05 Python
浅谈Python的方法解析顺序(MRO)
2020/03/05 Python
sklearn的predict_proba使用说明
2020/06/28 Python
使用Python操作MySQL的小技巧
2020/09/10 Python
社区七一党员活动方案
2014/01/25 职场文书
人事助理自荐信
2014/02/02 职场文书
记帐员岗位责任制
2014/02/08 职场文书
护理专科自荐书范文
2014/02/18 职场文书
《雪儿》教学反思
2014/04/17 职场文书
物流专业求职信
2014/06/30 职场文书
2014年银行员工年终自我评价
2014/09/19 职场文书
2015年保险公司工作总结
2015/04/24 职场文书
家长会开场白和结束语
2015/05/29 职场文书
关于空气污染危害的感想
2015/08/11 职场文书
毕业生自我鉴定范文
2019/05/13 职场文书
如何给HttpServletRequest增加消息头
2021/06/30 Java/Android