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 12 Javascript
javascript实现颜色渐变的方法
Oct 30 Javascript
jquery监听div内容的变化具体实现思路
Nov 04 Javascript
jquery easyui使用心得
Jul 07 Javascript
js使用心得分享
Jan 13 Javascript
jQuery实现下拉框选择图片功能实例
Aug 08 Javascript
AngularJS 入门教程之HTML DOM实例详解
Jul 28 Javascript
angularjs 实现带查找筛选功能的select下拉框实例
Jan 11 Javascript
JavaScript监听手机物理返回键的两种解决方法
Aug 14 Javascript
Js利用Canvas实现图片压缩功能
Sep 13 Javascript
Node.js 使用递归实现遍历文件夹中所有文件
Sep 18 Javascript
vue 登录滑动验证实现代码
Aug 24 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获取文件夹路径内的图片以及分页显示示例
2014/03/11 PHP
PHP中trim()函数简单使用指南
2015/04/16 PHP
Symfony实现行为和模板中取得request参数的方法
2016/03/17 PHP
PHP htmlspecialchars_decode()函数用法讲解
2019/03/01 PHP
thinkphp 5框架实现登陆,登出及session登陆状态检测功能示例
2019/10/10 PHP
JQuery 简便实现页面元素数据验证功能
2007/03/24 Javascript
javascript中利用数组实现的循环队列代码
2010/01/24 Javascript
JQUERY对单选框(radio)操作的小例子
2013/04/25 Javascript
jQuery事件绑定和委托实例
2014/11/25 Javascript
JS实现可自定义大小,可双击关闭的弹出层效果
2015/10/16 Javascript
Bootstrap源码解读下拉菜单(4)
2016/12/23 Javascript
vue element-ui 绑定@keyup事件无效的解决方法
2018/03/09 Javascript
Nodejs使用Mongodb存储与提供后端CRD服务详解
2018/09/04 NodeJs
vue 双向数据绑定的实现学习之监听器的实现方法
2018/11/30 Javascript
Node.js的进程管理的深入理解
2019/01/09 Javascript
vue项目中实现的微信分享功能示例
2019/01/21 Javascript
微信小程序防止多次点击跳转(函数节流)
2019/09/19 Javascript
JavaScript this在函数中的指向及实例详解
2019/10/14 Javascript
[04:20]DOTA2-DPC中国联赛 正赛 VG vs LBZS 选手采访 1月19日
2021/03/11 DOTA
Python利用splinter实现浏览器自动化操作方法
2018/05/11 Python
利用pyuic5将ui文件转换为py文件的方法
2019/06/19 Python
Python内存管理实例分析
2019/07/10 Python
python实现读取excel文件中所有sheet操作示例
2019/08/09 Python
python实现IOU计算案例
2020/04/12 Python
英国旅行箱包和行李箱购物网站:Travel Luggage & Cabin Bags
2019/08/26 全球购物
英国复古服装购物网站:Collectif
2019/10/30 全球购物
演讲稿祖国在我心中
2014/05/04 职场文书
细节决定成败演讲稿
2014/05/12 职场文书
2014教师“四风问题”对照检查材料思想汇报
2014/09/16 职场文书
2014年个人工作总结模板
2014/12/15 职场文书
三峡导游词
2015/01/31 职场文书
环卫工作个人总结
2015/03/04 职场文书
学习十八大的感悟
2015/08/11 职场文书
《语言的突破》读后感3篇
2019/12/12 职场文书
解决Pytorch dataloader时报错每个tensor维度不一样的问题
2021/05/28 Python
php png失真的原因及解决办法
2021/10/24 PHP