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 StringBuilder类实现
Dec 22 Javascript
ExtJs使用IFrame的实现代码
Mar 24 Javascript
使用JQuery和CSS模拟超链接的用户单击事件的实现代码
May 23 Javascript
javascript 实现简单的table排序及table操作练习
Dec 28 Javascript
JS定义网页表单提交(submit)的方法
Mar 20 Javascript
JS实现字符串转驼峰格式的方法
Dec 16 Javascript
vue实现在表格里,取每行的id的方法
Mar 09 Javascript
Vue.js项目中管理每个页面的头部标签的两种方法
Jun 25 Javascript
VUE预渲染及遇到的坑
Sep 03 Javascript
小程序server请求微信服务器超时的解决方法
May 21 Javascript
基于JavaScript或jQuery实现网站夜间/高亮模式
May 30 jQuery
Jquery cookie插件实现原理代码解析
Aug 04 jQuery
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 数据库树的遍历方法
2009/02/06 PHP
利用ThinkPHP内置的ThinkAjax实现异步传输技术的实现方法
2011/12/19 PHP
php中的观察者模式简单实例
2015/01/20 PHP
php编程每天必学之表单验证
2016/03/01 PHP
网站页面自动跳转实现方法PHP、JSP(上)
2010/08/01 Javascript
JS截取字符串常用方法详细整理
2013/10/28 Javascript
几种设置表单元素中文本输入框不可编辑的方法总结
2013/11/25 Javascript
JS验证邮箱格式是否正确的代码
2013/12/05 Javascript
jQuery插件boxScroll实现图片轮播特效
2015/07/14 Javascript
一起学写js Calender日历控件
2016/04/14 Javascript
浅谈JavaScript 标准对象
2016/06/02 Javascript
Javascript基础_简单比较undefined和null 值
2016/06/14 Javascript
AngularJS教程之简单应用程序示例
2016/08/16 Javascript
微信小程序 自定义对话框实例详解
2017/01/20 Javascript
js中位数不足自动补位扩展padLeft、padRight实现代码
2020/04/06 Javascript
Vue使用v-viewer实现图片预览
2020/10/21 Javascript
python进程类subprocess的一些操作方法例子
2014/11/22 Python
Python命令行参数解析模块getopt使用实例
2015/04/13 Python
Python3实现将文件树中所有文件和子目录归档到tar压缩文件的方法
2015/05/22 Python
详细解读Python中解析XML数据的方法
2015/10/15 Python
详解Python 装饰器执行顺序迷思
2018/08/08 Python
python使用循环打印所有三位数水仙花数的实例
2018/11/13 Python
对python 多个分隔符split 的实例详解
2018/12/20 Python
详解Django CAS 解决方案
2019/10/30 Python
Python基于Socket实现简单聊天室
2020/02/17 Python
Python如何把十进制数转换成ip地址
2020/05/25 Python
python 实现两个npy档案合并
2020/07/01 Python
美国大型的健身社区和补充商店:Bodybuilding.com
2016/09/06 全球购物
20世纪40年代连衣裙和复古服装:The Seamstress Of Bloomsbury
2018/07/24 全球购物
伦敦剧院门票:London Theatre Direct
2018/11/21 全球购物
JMS中Topic和Queue有什么区别
2013/05/15 面试题
文秘自荐信
2013/10/20 职场文书
家具促销活动方案
2014/02/16 职场文书
公司法人授权委托书范本
2014/09/12 职场文书
招标授权委托书样本
2014/09/23 职场文书
《包身工》教学反思
2016/02/23 职场文书