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 相关文章推荐
js中判断数字\字母\中文的正则表达式 (实例)
Jun 29 Javascript
使用JS读秒使用示例
Sep 21 Javascript
js实现的常用的左侧导航效果
Oct 17 Javascript
js快速排序的实现代码
Dec 08 Javascript
js文件Cookie存取值示例代码
Feb 20 Javascript
js动态修改整个页面样式达到换肤效果
May 23 Javascript
详解JavaScript ES6中的模板字符串
Jul 28 Javascript
javascript实现简单的分页特效
Aug 12 Javascript
Hammer.js+轮播原理实现简洁的滑屏功能
Feb 02 Javascript
vue.js 添加 fastclick的支持方法
Aug 28 Javascript
浅谈vue中document.getElementById()拿到的是原值的问题
Jul 26 Javascript
three.js如何实现3D动态文字效果
Mar 03 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的中问验证码
2006/11/25 PHP
PHP连接access数据库
2008/03/27 PHP
PHP开发者常犯的10个MySQL错误更正剖析
2012/01/30 PHP
php简单实现无限分类树形列表的方法
2015/03/27 PHP
PHP explode()函数的几个应用和implode()函数有什么区别
2015/11/05 PHP
Laravel框架控制器的request与response用法示例
2019/09/30 PHP
创建一个复制UBB软件信息的链接或按钮的js代码
2008/01/06 Javascript
JavaScript 动态添加表格行 使用模板、标记
2009/10/24 Javascript
jquery根据属性和index来查找属性值并操作
2014/07/25 Javascript
prototype框架中美元符号$用法分析
2016/01/22 Javascript
js编写的treeview使用方法
2016/11/11 Javascript
让nodeJS支持ES6的词法----babel的安装和使用方法
2017/07/31 NodeJs
微信小程序tabBar用法实例详解
2017/12/04 Javascript
vue中子组件传递数据给父组件的讲解
2019/01/27 Javascript
bootstrap+spring boot实现面包屑导航功能(前端代码)
2019/10/09 Javascript
python中的计时器timeit的使用方法
2017/10/20 Python
Python3爬取英雄联盟英雄皮肤大图实例代码
2018/11/14 Python
python+numpy按行求一个二维数组的最大值方法
2019/07/09 Python
Python遍历字典方式就实例详解
2019/12/28 Python
Python dict的常用方法示例代码
2020/06/23 Python
哪种Python框架适合你?简单介绍几种主流Python框架
2020/08/04 Python
Python 通过正则表达式快速获取电影的下载地址
2020/08/17 Python
python 输入字符串生成所有有效的IP地址(LeetCode 93号题)
2020/10/15 Python
Python使用Opencv实现边缘检测以及轮廓检测的实现
2020/12/31 Python
英国日常交易网站:Wowcher
2018/09/04 全球购物
C/C++ 笔试、面试题目大汇总
2015/11/21 面试题
数控机械专业个人的自我评价
2014/01/02 职场文书
乡镇网格化管理实施方案
2014/03/23 职场文书
《长征》教学反思
2014/04/27 职场文书
节约粮食标语
2014/06/18 职场文书
防灾减灾活动总结
2014/08/30 职场文书
小学运动会报道稿
2014/10/04 职场文书
妇联2016年六一国际儿童节活动总结
2016/04/06 职场文书
pytorch model.cuda()花费时间很长的解决
2021/06/01 Python
详细谈谈MYSQL中的COLLATE是什么
2021/06/11 MySQL
Java 超详细讲解数据结构中的堆的应用
2022/04/02 Java/Android