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 格式字符串的应用
Mar 29 Javascript
JS实现自动变换的菜单效果代码
Sep 09 Javascript
微信小程序 开发工具快捷键整理
Oct 31 Javascript
jQuery图片轮播(二)利用构造函数和原型创建对象以实现继承
Dec 06 Javascript
深入学习jQuery中的data()
Dec 22 Javascript
seajs实现强制刷新本地缓存的方法分析
Oct 16 Javascript
vue.js 底部导航栏 一级路由显示 子路由不显示的解决方法
Mar 09 Javascript
JavaScript常用截取字符串的三种方式用法区别实例解析
May 15 Javascript
如何在Angular应用中创建包含组件方法示例
Mar 23 Javascript
ES6入门教程之let、const的使用方法
Apr 13 Javascript
微信小程序使用字体图标的方法
May 23 Javascript
Vue 3.0 前瞻Vue Function API新特性体验
Aug 12 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
地摊中国 - 珍藏老照片
2020/08/18 杂记
thinkphp3.0输出重复两次的解决方法
2014/12/19 PHP
php有道翻译api调用方法实例
2014/12/22 PHP
php抓取并保存网站图片的实现代码
2015/10/28 PHP
YII框架常用技巧总结
2019/04/27 PHP
php多进程并发编程防止出现僵尸进程的方法分析
2020/02/28 PHP
javascript之函数直接量(function(){})()
2007/06/29 Javascript
开发跨浏览器javascript常见注意事项
2009/01/01 Javascript
node.js中实现同步操作的3种实现方法
2014/12/05 Javascript
jquery中的工具使用方法$.isFunction, $.isArray(), $.isWindow()
2015/08/09 Javascript
jquery点击缩略图切换视频播放特效代码分享
2015/09/15 Javascript
JavaScript设置名字输入不合法的实现方法
2017/05/23 Javascript
解决html-jquery/js引用外部图片时遇到看不了或出现403的问题
2017/09/22 jQuery
深入浅析javascript继承体系
2017/10/23 Javascript
微信小程序开发之点击按钮退出小程序的实现方法
2019/04/26 Javascript
JS中的一些常用的函数式编程术语
2019/06/15 Javascript
Vue动态生成表格的行和列
2019/07/18 Javascript
[13:16]INFAMOUS vs VGJ T BO3
2018/06/07 DOTA
Python随机生成带特殊字符的密码
2016/03/02 Python
Python subprocess模块详细解读
2018/01/29 Python
Python 支付整合开发包的实现
2019/01/23 Python
python爬虫简单的添加代理进行访问的实现代码
2019/04/04 Python
在python image 中安装中文字体的实现方法
2019/08/22 Python
Python semaphore evevt生产者消费者模型原理解析
2020/03/18 Python
django数据模型中null和blank的区别说明
2020/09/02 Python
Python unittest生成测试报告过程解析
2020/09/08 Python
美国Rue La La闪购网站:奢侈品、中高档品牌限时折扣
2016/10/19 全球购物
教育学专业毕业生的自我鉴定
2013/11/26 职场文书
保护环境倡议书范文
2014/05/13 职场文书
企业标语大全
2014/07/01 职场文书
教师工作表现自我评价
2015/03/05 职场文书
教师网络培训心得体会
2016/01/09 职场文书
利用Nginx代理如何解决前端跨域问题详析
2021/04/02 Servers
AI:如何训练机器学习的模型
2021/04/16 Python
Apache Hudi的多版本清理服务彻底讲解
2022/03/31 Servers
pytorch分类模型绘制混淆矩阵以及可视化详解
2022/04/07 Python