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 网页水印(非图片水印)实现代码
Mar 01 Javascript
javascript数组的使用
Mar 28 Javascript
在jQuery中 常用的选择器介绍
Apr 16 Javascript
点击按钮自动加关注的代码(sina微博/QQ空间/人人网/腾讯微博)
Jan 02 Javascript
详解jQuery向动态生成的内容添加事件响应jQuery live()方法
Nov 02 Javascript
jquery层级选择器(匹配父元素下的子元素实现代码)
Sep 05 Javascript
微信小程序 解析网页内容详解及实例
Feb 22 Javascript
Angular 2父子组件数据传递之@Input和@Output详解(下)
Jul 05 Javascript
vuex + axios 做登录验证 并且保存登录状态的实例
Sep 16 Javascript
vue实现条件判断动态绑定样式的方法
Sep 29 Javascript
基于layui实现高级搜索(筛选)功能
Jul 26 Javascript
如何检测JavaScript中的死循环示例详解
Aug 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实现的获取网站备案信息查询代码(360)
2013/09/23 PHP
php中将一个对象保存到Session中的方法
2015/03/13 PHP
在Linux系统下一键重新安装WordPress的脚本示例
2015/06/30 PHP
PHP解压ZIP文件到指定文件夹的方法
2016/11/17 PHP
PHP实现防盗链的方法分析
2017/07/25 PHP
PHP实现函数内修改外部变量值的方法示例
2018/12/28 PHP
缓动函数requestAnimationFrame 更好的实现浏览器经动画
2012/12/07 Javascript
JS关键字变色实现思路及代码
2013/02/21 Javascript
jCallout 轻松实现气泡提示功能
2013/09/22 Javascript
JQuery与JS里submit()的区别示例介绍
2014/02/17 Javascript
浅谈jQuery中对象遍历.eq().first().last().slice()方法
2014/11/26 Javascript
Bootstrap滚动监听(Scrollspy)插件详解
2016/04/26 Javascript
微信小程序 自己制作小组件实例详解
2016/12/22 Javascript
微信小程序实战之登录页面制作(5)
2020/03/30 Javascript
通过一次报错详细谈谈Point事件
2018/05/17 Javascript
vue router总结 $router和$route及router与 router与route区别
2019/07/05 Javascript
微信小程序iBeacon测距及稳定程序的实现解析
2019/07/31 Javascript
Node.js 在本地生成日志文件的方法
2020/02/07 Javascript
Python中实现的RC4算法
2015/02/14 Python
Python比较两个图片相似度的方法
2015/03/13 Python
Python使用 Beanstalkd 做异步任务处理的方法
2018/04/24 Python
python实现逐个读取txt字符并修改
2018/12/24 Python
python简单贪吃蛇开发
2019/01/28 Python
Python字典常见操作实例小结【定义、添加、删除、遍历】
2019/10/25 Python
Python yield生成器和return对比代码实例
2020/04/20 Python
Python捕获异常堆栈信息的几种方法(小结)
2020/05/18 Python
python要安装在哪个盘
2020/06/15 Python
canvas进阶之如何画出平滑的曲线
2018/10/15 HTML / CSS
财务专业大学生职业生涯规划范文
2013/12/30 职场文书
模范家庭事迹材料
2014/02/10 职场文书
二手房购房意向书范本
2014/04/01 职场文书
幼儿园课题实施方案
2014/05/14 职场文书
检讨书范文1000字
2015/01/28 职场文书
收入证明怎么写
2015/06/12 职场文书
幼儿园大班教学反思
2016/03/02 职场文书
Java并发编程之详解CyclicBarrier线程同步
2021/06/23 Java/Android