javascript中substring()、substr()、slice()的区别


Posted in Javascript onAugust 30, 2015

stringObject.substring(start,stop) 用于提取字符串中介于两个指定下标之间的字符。

start必需。一个非负的整数,规定要提取的子串的第一个字符在 stringObject 中的位置。

stop可选。一个非负的整数,比要提取的子串的最后一个字符在 stringObject 中的位置多 1。如果省略该参数,那么返回的子串会一直到字符串的结尾。

start从0开始 到stop(不包含stop)结束 不接受负的参数。

stringObject.substr(start,length)可在字符串中抽取从start下标开始的指定数目的字符

start 必需。要抽取的子串的起始下标。必须是数值。如果是负数,那么该参数声明从字符串的尾部开始算起的位置。也就是说,-1 指字符串中最后一个字符,-2 指倒数第二个字符,以此类推。

length 可选。子串中的字符数。必须是数值。如果省略了该参数,那么返回从 stringObject 的开始位置到结尾的字串。

stringObject.slice(start,end)提取字符串的某个部分,并以新的字符串返回被提取的部分

start 要抽取的片断的起始下标。如果是负数,则该参数规定的是从字符串的尾部开始算起的位置。也就是说,-1 指字符串的最后一个字符,-2 指倒数第二个字符,以此类推。

end 紧接着要抽取的片段的结尾的下标。若未指定此参数,则要提取的子串包括 start 到原字符串结尾的字符串。如果该参数是负数,那么它规定的是从字符串的尾部开始算起的位置。

返回新的字符串包括字符串 stringObject 从 start 开始(包括 start)到 end 结束(不包括 end)为止的所有字符

string.slice()
string.substring()
string.substr()
 
var stringValue = “hello world”;
alert(stringValue.slice(3));          //”lo world”
alert(stringValue.substring(3));      //”lo world”
alert(stringValue.substr(3));        //”lo world”
alert(stringValue.slice(3,7));         //”lo w”
alert(stringValue.substring(3,7));    //”lo w”
alert(stringValue.substr(3,7));       //”lo worl”

三者如果只有一个参数n 则会从第n个位置开始返回剩余字符串(从0开始计算位置)

如果有两个参数n,m,slice与substring会从第n个位置开始返回到第m个位置(不包括第m位置)的字符串,而substr会返回从第n个位置开始的m个字符。
———————————————————————————————
 

string.slice()
string.substring()
string.substr()
var stringValue = “hello world”;
alert(stringValue.slice(-3));          //”rld”
alert(stringValue.substring(-3));      //”hello world”
alert(stringValue.substr(-3));        //”rld”
alert(stringValue.slice(3,-4));         //”lo w”
alert(stringValue.substring(3,-4));    //”hel”
alert(stringValue.substr(3,-4));       //”"(空字符串)

当参数是负值情况下,slice将传入负值与字符串长度(string.length)相加,substr会将负的第一个参数加上字符串长度,第二个转换为0,substring会将所有负值都转换成0。

IE的JavaScript实现在处理向substr()方法传递负值的情况时存在问题,它会返回原始的字符串。

Javascript 相关文章推荐
读jQuery之十 事件模块概述
Jun 27 Javascript
一个分享按钮的插件使用介绍(可扩展,内附开发制作流程)
Sep 19 Javascript
使用js显示当前时间示例
Mar 02 Javascript
基于BootStrap Metronic开发框架经验小结【三】下拉列表Select2插件的使用
May 12 Javascript
AngularJS控制器之间的通信方式详解
Nov 03 Javascript
jQuery实现页面滚动时智能浮动定位
Jan 08 Javascript
JavaScript队列函数和异步执行详解
Jun 19 Javascript
ES6/JavaScript使用技巧分享
Dec 14 Javascript
webpack多入口文件页面打包配置详解
Jan 09 Javascript
jQuery实现的别踩白块小游戏完整示例
Jan 07 jQuery
egg.js的基本使用和调用数据库的方法示例
May 18 Javascript
适合后台管理系统开发的12个前端框架(小结)
Jun 29 Javascript
IE8下jQuery改变png图片透明度时出现的黑边
Aug 30 #Javascript
javascript中sort() 方法使用详解
Aug 30 #Javascript
javascript中的正则表达式使用详解
Aug 30 #Javascript
jQuery鼠标事件汇总
Aug 30 #Javascript
简单谈谈javascript中的变量、作用域和内存问题
Aug 30 #Javascript
jquery专业的导航菜单特效代码分享
Aug 29 #Javascript
js实现基于正则表达式的轻量提示插件
Aug 29 #Javascript
You might like
php提交表单时判断 if($_POST[submit])与 if(isset($_POST[submit])) 的区别
2011/02/08 PHP
php使用websocket示例详解
2014/03/12 PHP
浅谈PHP中foreach/in_array的使用
2015/11/02 PHP
javascript 控制弹出窗口
2007/04/10 Javascript
从阿里妈妈发现的几个不错的表单验证函数
2007/09/21 Javascript
不同浏览器的怪癖小结
2010/07/11 Javascript
js更优雅的兼容
2010/08/12 Javascript
Javascript模块化编程(一)模块的写法最佳实践
2013/01/17 Javascript
把input初始值不写value的具体实现方法
2013/07/04 Javascript
JavaScript关闭当前页面(窗口)不带任何提示
2014/03/26 Javascript
JavaScript判断textarea值是否为空并给出相应提示
2014/09/04 Javascript
JS烟花背景效果实现方法
2015/03/03 Javascript
JavaScript中数组添加值和访问值常见问题
2016/02/06 Javascript
Three.js学习之几何形状
2016/08/01 Javascript
AngularJS equal比较对象实例详解
2016/09/14 Javascript
深入理解vue路由的使用
2017/03/24 Javascript
详解vue-cli快速构建项目以及引入bootstrap、jq
2017/05/26 Javascript
Vue的MVVM实现方法
2017/08/16 Javascript
babel的使用及安装配置教程
2018/02/22 Javascript
微信小程序实现星级评分和展示
2018/07/05 Javascript
微信小程序调用后台service教程详解
2020/11/06 Javascript
[01:02:46]VGJ.S vs NB 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python2.6版本中实现字典推导 PEP 274(Dict Comprehensions)
2015/04/28 Python
解读Python中degrees()方法的使用
2015/05/18 Python
解决Python网页爬虫之中文乱码问题
2018/05/11 Python
python中的线程threading.Thread()使用详解
2019/12/17 Python
Python3.7将普通图片(png)转换为SVG图片格式(网站logo图标)动起来
2020/04/21 Python
django admin管理工具自定义时间区间筛选器DateRangeFilter介绍
2020/05/19 Python
python3爬虫中异步协程的用法
2020/07/10 Python
澳大利亚家具和家居用品购物网站:Zanui
2018/12/29 全球购物
成人高等教育毕业生自我鉴定
2013/10/22 职场文书
普通大学毕业生自荐信范文
2014/02/23 职场文书
学校食堂食品安全承诺书
2015/04/29 职场文书
护理培训心得体会
2016/01/22 职场文书
某某幼儿园的教育教学管理调研分析报告
2019/11/29 职场文书
利用python Pandas实现批量拆分Excel与合并Excel
2021/05/23 Python