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脚本
Dec 12 Javascript
jquery构造器的实现代码小结
May 16 Javascript
解析URI与URL之间的区别与联系
Nov 22 Javascript
jquery自定义下拉列表示例
Apr 25 Javascript
详解JavaScript 中的 replace 方法
Jan 01 Javascript
深入浅析JavaScript中的Function类型
Jul 09 Javascript
推荐15个最好用的JavaScript代码压缩工具
Feb 13 Javascript
基于layui框架响应式布局的一些使用详解
Sep 16 Javascript
vuex存值与取值的实例
Nov 06 Javascript
js DOM的事件常见操作实例详解
Dec 16 Javascript
js在HTML的三种引用方式详解
Aug 29 Javascript
Vue开发中常见的套路和技巧总结
Nov 24 Vue.js
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实现paypal整合方法
2010/11/28 PHP
PHP学习笔记之数组篇
2011/06/28 PHP
分享下页面关键字抓取components.arrow.com站点代码
2014/01/30 PHP
php使用memcoder将视频转成mp4格式的方法
2015/03/12 PHP
php实现对象克隆的方法
2015/06/20 PHP
如何写php守护进程(Daemon)
2015/12/30 PHP
PHP的AES加密算法完整实例
2016/07/20 PHP
Thinkphp整合微信支付功能
2016/12/14 PHP
php服务器的系统详解
2019/10/12 PHP
javascript firefox不显示本地预览图片问题的解决方法
2008/11/12 Javascript
基于json的jquery地区联动效果代码
2011/07/06 Javascript
jQuery JSON实现无刷新三级联动实例探讨
2013/05/28 Javascript
jquery的flexigrid无法显示数据提示获取到数据
2013/07/19 Javascript
scrollWidth,clientWidth,offsetWidth的区别
2015/01/13 Javascript
JQuery datepicker 用法详解
2015/12/25 Javascript
AngularJS中比较两个数组是否相同
2016/08/24 Javascript
ajax图片上传,图片异步上传,更新实例
2016/12/30 Javascript
vue高德地图之玩转周边
2017/06/16 Javascript
ReactNative Image组件使用详解
2017/08/07 Javascript
详解webpack模块加载器兼打包工具
2018/09/11 Javascript
VueCli3构建TS项目的方法步骤
2018/11/07 Javascript
ES6中的class是如何实现的(附Babel编译的ES5代码详解)
2019/05/17 Javascript
vue实现图片预览组件封装与使用
2019/07/13 Javascript
html+jQuery实现拖动滑块图片拼图验证码插件【移动端适用】
2019/09/10 jQuery
JS实现iframe中子父页面跨域通讯的方法分析
2020/03/10 Javascript
使用Python获取CPU、内存和硬盘等windowns系统信息的2个例子
2014/04/15 Python
基于SQLAlchemy实现操作MySQL并执行原生sql语句
2020/06/10 Python
python爬取”顶点小说网“《纯阳剑尊》的示例代码
2020/10/16 Python
HTML5本地数据库基础操作详解
2016/04/26 HTML / CSS
FC-Moto丹麦:欧洲最大的摩托车服装和头盔商店之一
2019/08/20 全球购物
DELPHI面试题研发笔试试卷
2015/11/08 面试题
医院实习介绍信
2014/01/12 职场文书
新年寄语大全
2014/04/12 职场文书
甘南现象心得体会
2014/09/11 职场文书
自荐信模板大全
2015/03/27 职场文书
JavaScript实现两个数组的交集
2022/03/25 Javascript