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 全角转换实现代码
Jul 17 Javascript
javascript新建标签,判断键盘输入,以及判断焦点(示例代码)
Nov 25 Javascript
js实现根据身份证号自动生成出生日期
Dec 15 Javascript
js删除数组元素、清空数组的简单方法(必看)
Jul 27 Javascript
JavaScript 判断一个对象{}是否为空对象的简单方法
Oct 09 Javascript
Node连接mysql数据库方法介绍
Feb 07 Javascript
基于JavaScript实现购物车功能
Feb 07 Javascript
React Native 环境搭建的教程
Aug 19 Javascript
JavaScript实现省市联动过程中bug的解决方法
Dec 04 Javascript
vue中使用echarts制作圆环图的实例代码
Jul 27 Javascript
js最全的数组的降维5种办法(小结)
Apr 28 Javascript
解决vue加scoped后就无法修改vant的UI组件的样式问题
Sep 07 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
discuz Passport 通行证 整合笔记
2008/06/30 PHP
php adodb介绍
2009/03/19 PHP
php使用str_shuffle()函数生成随机字符串的方法分析
2017/02/17 PHP
理解Javascript_06_理解对象的创建过程
2010/10/15 Javascript
Jquery 切换不同图片示例代码
2013/12/05 Javascript
js表单提交和submit提交的区别实例分析
2015/12/10 Javascript
js编写当天简单日历效果【实现代码】
2016/05/03 Javascript
jQuery常用样式操作实例分析(获取、设置、追加、删除、判断等)
2016/09/08 Javascript
jQuery实现背景滑动菜单
2016/12/02 Javascript
vue-resource拦截器设置头信息的实例
2017/10/27 Javascript
浅谈JS对象添加getter与setter的5种方法
2018/06/09 Javascript
jQuery与原生JavaScript选择HTML元素集合用法对比分析
2019/11/26 jQuery
[05:03]2018DOTA2亚洲邀请赛主赛事首日回顾
2018/04/04 DOTA
python重试装饰器示例
2014/02/11 Python
Python+Opencv识别两张相似图片
2020/03/23 Python
Python实现计算圆周率π的值到任意位的方法示例
2018/05/08 Python
python实现验证码识别功能
2018/06/07 Python
Python完成哈夫曼树编码过程及原理详解
2019/07/29 Python
浅析PEP572: 海象运算符
2019/10/15 Python
Python 取numpy数组的某几行某几列方法
2019/10/24 Python
Python装饰器的应用场景代码总结
2020/04/10 Python
在Python3.74+PyCharm2020.1 x64中安装使用Kivy的详细教程
2020/08/07 Python
python+selenium实现12306模拟登录的步骤
2021/01/21 Python
美国创意礼品网站:UncommonGoods
2017/02/03 全球购物
ParcelABC西班牙:包裹运送和快递服务
2019/12/24 全球购物
美国最大的烧烤架和户外生活用品专业零售商:Barbeques Galore
2021/01/09 全球购物
2014年大班元旦活动方案
2014/02/26 职场文书
《穷人》教学反思
2014/04/08 职场文书
大学社团活动总结
2014/04/26 职场文书
北京奥运会口号
2014/06/21 职场文书
2014年学习厉行节约反对浪费思想汇报
2014/09/10 职场文书
幼儿园教师工作总结2015
2015/04/02 职场文书
青少年法制教育心得体会
2016/01/14 职场文书
深度学习tensorflow基础mnist
2021/04/14 Python
教你漂亮打印Pandas DataFrames和Series
2021/05/29 Python