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实现iframe动态调整高度的代码
Jan 06 Javascript
js 优化次数过多的循环 考虑到性能问题
Mar 05 Javascript
妙用Jquery的val()方法
Jun 27 Javascript
JavaScript NodeTree导航栏(菜单项JSON类型/自制)
Feb 01 Javascript
JS取request值以及自动执行使用示例
Feb 24 Javascript
Struts2+jquery.form.js实现图片与文件上传的方法
May 05 Javascript
jQuery操作iframe中js函数的方法小结
Jul 06 Javascript
jquery请求servlet实现ajax异步请求的示例
Jun 03 jQuery
快速理解 JavaScript 中的 LHS 和 RHS 查询的用法
Aug 24 Javascript
关于element-ui的隐藏组件el-scrollbar的使用
May 29 Javascript
vue 实现cli3.0中使用proxy进行代理转发
Oct 30 Javascript
js中火星坐标、百度坐标、WGS84坐标转换实现方法示例
Mar 02 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用mysql数据库存储session的代码
2010/03/05 PHP
解析PHP实现多进程并行执行脚本
2013/06/18 PHP
PHP7+Nginx的配置与安装教程详解
2016/05/10 PHP
取得一定长度的内容,处理中文
2006/12/20 Javascript
javascript 学习之旅 (1)
2009/02/05 Javascript
实现连缀调用的map方法(prototype)
2009/08/05 Javascript
JavaScript DOM 学习第五章 表单简介
2010/02/19 Javascript
jQuery源码分析-05异步队列 Deferred 使用介绍
2011/11/14 Javascript
利用jQuary实现文字浮动提示效果示例代码
2013/12/26 Javascript
把字符串按照特定的字母顺序进行排序的js代码
2014/01/28 Javascript
jquery1.10给新增元素绑定事件的方法
2014/03/06 Javascript
将form表单中的元素转换成对象的方法适用表单提交
2014/05/02 Javascript
JS实现点击复选框将按钮或文本框变为灰色不可用的方法
2015/08/11 Javascript
基于JS实现的笛卡尔乘积之商品发布
2016/05/13 Javascript
AngularJS学习笔记之依赖注入详解
2016/05/16 Javascript
AngularJS 过滤与排序详解及实例代码
2016/09/14 Javascript
jQuery实现表格元素动态创建功能
2017/01/09 Javascript
JS自定义滚动条效果简单实现代码
2020/10/27 Javascript
把JavaScript代码改成ES6语法不完全指南(分享)
2017/09/10 Javascript
微信小程序--获取用户地理位置名称(无须用户授权)的方法
2019/04/29 Javascript
js实现登录时记住密码的方法分析
2020/04/05 Javascript
详解JavaScript 的执行机制
2020/09/18 Javascript
Python扩展内置类型详解
2018/03/26 Python
Python面向对象程序设计之类的定义与继承简单示例
2019/03/18 Python
pytorch如何冻结某层参数的实现
2020/01/10 Python
高级3D打印市场:Gambody
2019/12/26 全球购物
Happy Socks英国官网:购买五颜六色的袜子
2020/11/03 全球购物
学校安全工作制度
2014/01/19 职场文书
水毁工程实施方案
2014/04/01 职场文书
大学生翘课检讨书范文
2014/10/06 职场文书
幼儿园五一劳动节活动总结
2015/02/09 职场文书
工程部岗位职责
2015/02/10 职场文书
入党积极分子半年考察意见
2015/06/02 职场文书
2016年三严三实党课学习心得体会
2016/01/06 职场文书
python lambda 表达式形式分析
2022/04/03 Python
mysql使用FIND_IN_SET和group_concat两个方法查询上下级机构
2022/04/20 MySQL