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 相关文章推荐
js不是基础的基础
Dec 24 Javascript
jQuery Ajax文件上传(php)
Jun 16 Javascript
flexigrid 类似ext grid的JS表格代码
Jul 17 Javascript
深入理解JavaScript系列(30):设计模式之外观模式详解
Mar 03 Javascript
jQuery事件绑定与解除绑定实现方法
Apr 15 Javascript
jquery实现倒计时功能
Dec 28 Javascript
Bootstrap弹出框(modal)垂直居中的问题及解决方案详解
Jun 12 Javascript
JS获取中文拼音首字母并通过拼音首字母快速查找页面内对应中文内容的方法【附demo源码】
Aug 19 Javascript
利用n 升级工具升级Node.js版本及在mac环境下的坑
Feb 15 Javascript
webpack开发环境和生产环境的深入理解
Nov 08 Javascript
基于Vue SEO的四种方案(小结)
Jul 01 Javascript
js实现点击图片在屏幕中间弹出放大效果
Sep 11 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
Protoss建筑一览
2020/03/14 星际争霸
BBS(php & mysql)完整版(七)
2006/10/09 PHP
php metaphone()函数及php localeconv() 函数实例解析
2016/05/15 PHP
PHP论坛实现积分系统的思路代码详解
2020/06/01 PHP
JS图片切换的具体方法(带缩略图版)
2013/11/12 Javascript
JS获取计算机mac地址以及IP的实现方法
2014/01/08 Javascript
javascript中的括号()用法小结
2014/04/14 Javascript
jQuery的cookie插件实现保存用户登陆信息
2014/04/15 Javascript
Jquery $.getJSON 在IE下的缓存问题解决方法
2014/10/10 Javascript
自定义函数实现IE7与IE8不兼容js中trim函数的问题
2015/02/03 Javascript
js控制文本框只输入数字和小数点的方法
2015/03/10 Javascript
js随机生成字母数字组合的字符串 随机动画数字
2015/09/02 Javascript
javascript中arguments,callee,caller详解
2016/03/16 Javascript
JS动态创建元素的两种方法
2016/04/20 Javascript
浏览器兼容的JS写法总结
2016/04/27 Javascript
基于Vue.js实现数字拼图游戏
2016/08/02 Javascript
JS实现的DIV块来回滚动效果示例
2017/02/07 Javascript
详解Vue 动态添加模板的几种方法
2017/04/25 Javascript
vue--点击当前增加class,其他删除class的方法
2018/09/15 Javascript
浅谈Vue3.0之前你必须知道的TypeScript实战技巧
2019/09/11 Javascript
[01:51]2014DOTA2西雅图邀请赛 MVP 外卡赛black场间采访
2014/07/09 DOTA
Python基础教程之正则表达式基本语法以及re模块
2016/03/25 Python
Python实现新浪博客备份的方法
2016/04/27 Python
详解Python编程中对Monkey Patch猴子补丁开发方式的运用
2016/05/27 Python
Python生命游戏实现原理及过程解析(附源代码)
2019/08/01 Python
Python作用域与名字空间原理详解
2020/03/21 Python
Python 实现自动完成A4标签排版打印功能
2020/04/09 Python
Windows 平台做 Python 开发的最佳组合(推荐)
2020/07/27 Python
HTML5边玩边学(1)画布实现方法
2010/09/21 HTML / CSS
一套VC试题
2015/01/23 面试题
个人合作协议书范本
2014/04/18 职场文书
安全目标管理责任书
2014/07/25 职场文书
教师辞职信范文
2015/02/28 职场文书
总结会主持词
2015/07/02 职场文书
送给教师们,到底该如何写好教学反思?
2019/07/02 职场文书
如何理解Vue简单状态管理之store模式
2021/05/15 Vue.js