javascript中substr,substring,slice.splice的区别说明


Posted in Javascript onNovember 25, 2010

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

stringObject.substr(start,length);start必须,length可选.

start 是截取的开始位置的下标,从0开始算起,必须是数字.可以是负数,-1是倒数第一个字符,-2是倒数第二个字符,以此类推.

length 是要截取的字符的长度,必须是数字.如果未指定,则从start位置处开始截取到字符串结尾.

substr 指定的是字符串的开始下标跟截取长度,所以可以替代substring跟slice使用.

重要事项:ECMAscript 没有对该方法进行标准化,因此反对使用它。

substring() 方法用于提取字符串中介于两个指定下标之间的字符。

stringObject.substring(start,end);start必须,end可选.

start 是截取的开始位置的下标,从0开始算起,必须是非负数字.(w3c说必须是非负整数,试验了下,不是整数也可以.)

end 必须是数字.如果未指定,则从start位置处开始截取到字符串结尾.

注意事项:substring截取的字符不包括end处的字符.所以截取的长度为end-start.

               start=end的话,返回空字符串,长度为0.

重要事项:substring不接收负的参数,slice和substr可以.

slice() 方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。

stringObject.slice(start,end);start必须,end可选.

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

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

splice() 方法用于插入、删除或替换数组的元素。

arrayObject.splice(index,howmany,element1,.....,elementX)index,howmany必须,其他可选.

index 规定从何处添加/删除元素。该参数是开始插入和(或)删除的数组元素的下标,必须是数字。

 

howmany 规定应该删除多少元素。必须是数字,但可以是 "0"。如果未规定此参数,则删除从 index 开始到原数组结尾的所有元素。

element1 规定要添加到数组的新元素。从 index 所指的下标处开始插入。

elementx 可向数组添加若干元素。

注释:请注意,splice() 方法与 slice() 方法的作用是不同的,splice() 方法会直接对数组进行修改。

所有提示:某些情况下,负数的参数不识别.所以尽量不要用负数作参数.免得浏览器不兼容,造成程序的出错.

 

这是JavaScript 权威指南上的说明,象我这种E文很烂的就能勉强看懂一下,并没有对着翻译,只是按照理解说明了下。


string.substring(from, to)

Arguments

from

A nonnegative integer that specifies the position within string of the first character of the desired substring.

       指定想要得到字符串的开始位置,即索引(非负整数)

to

A nonnegative optional integer that is one greater than the position of the last character of the desired substring. If this argument is omitted, the returned substring runs to the end of the string.

       指定想要得到字符串的结束位置,不包括该位置的字符(非负整数,可选,没有指定则返回从指定开始位置到原字符串结束位置)


string.slice(start, end)

Arguments

start

The string index where the slice is to begin. If negative, this argument specifies a position measured from the end of the string. That is, -1 indicates the last character, -2 indicates the second from last character, and so on.

        指定想要得到字符串的开始的位置,即索引。

end

The string index immediately after the end of the slice. If not specified, the slice includes all characters from start to the end of the string. If this argument is negative, it specifies a position measured from the end of the string.

        指定想要得到字符串的结束位置,不包括该位置的字符(可选,没有指定则返回从指定开始位置到原字符串结束位置)


string.substr(start, length)

Arguments

start

The start position of the substring. If this argument is negative, it specifies a position measured from the end of the string: -1 specifies the last character, -2 specifies the second-to-last character, and so on.

        指定想要得到字符串的开始的位置,即索引。

length

The number of characters in the substring. If this argument is omitted, the returned substring includes all characters from the starting position to the end of the string.

        指定想要得到字符串的长度,(可选,没有指定则返回从指定开始位置到原字符串结束位置)


PS:这三个方法均返回截取原字符串的一部分新字符串,第2个参数均为可选参数,并且其实所有的参数均可以为负整数。

string.substring(from, to)
string.slice(start, end)

这两个方法差不多,都是指定开始和结束位置返回新字符串,在参数均为正整数的时候返回结果一样,当参数为负整数的时候,string.substring(from, to) 把负整数都当作0处理,而 string.slice(start, end) 将把负整数加上该字符串的长度处理。

string.substr(start, length)

这个方法只在第二个参数上指定的是新字符串的长度,对于负正数和string.slice(start, end)处理一样,把负整数加上原字符串的长度。
Example

var s = "abcdefg"; s.substring(1,4) // Returns "bcd" 
s.slice(1,4) // Returns "bcd" 
s.substr(1,4) // Returns "bcde" 
s.substring(2,-3) // Returns "ab" 实际上是 s.substring(0,2) 较小的参数会在前面 
s.slice(2,-3) // Returns "cd" 实际上是 s.slice(2,4) 
s.substr(2,-3) // Returns "cdef" 实际上是 s.slice(2,4)
Javascript 相关文章推荐
自适应图片大小的弹出窗口
Jul 27 Javascript
基于jquery实现的可以编辑选择的下拉框的代码
Nov 19 Javascript
js中if语句的几种优化代码写法
Mar 12 Javascript
关于extjs treepanel复选框选中父节点与子节点的问题
Apr 02 Javascript
基于jquery的手风琴图片展示效果实现方法
Dec 16 Javascript
JS实现页面超时后自动跳转到登陆页面
Jan 19 Javascript
jQuery地图map悬停显示省市代码分享
Aug 20 Javascript
Javascript模仿淘宝信用评价实例(附源码)
Nov 26 Javascript
vue-cli 3.x 配置Axios(proxyTable)跨域代理方法
Sep 19 Javascript
js/jquery遍历对象和数组的方法分析【forEach,map与each方法】
Feb 27 jQuery
Element Input输入框的使用方法
Jul 26 Javascript
ant design vue的form表单取值方法
Jun 01 Vue.js
JavaScript中的类继承
Nov 25 #Javascript
js getBoundingClientRect() 来获取页面元素的位置
Nov 25 #Javascript
腾讯的ip接口 方便获取当前用户的ip地理位置
Nov 25 #Javascript
js删除所有的cookie的代码
Nov 25 #Javascript
javascript 广告后加载,加载完页面再加载广告
Nov 25 #Javascript
js页面跳转常用的几种方式
Nov 25 #Javascript
简略的前端架构心得&&基于editor为例子的编码小技巧
Nov 25 #Javascript
You might like
php 日期时间处理函数小结
2009/12/18 PHP
php下连接mssql2005的代码
2011/01/17 PHP
php安全之直接用$获取值而不$_GET 字符转义
2012/06/03 PHP
php+mysql不用递归实现的无限级分类实例(非递归)
2014/07/08 PHP
php定义参数数量可变的函数用法实例
2015/03/16 PHP
win平台安装配置Nginx+php+mysql 环境
2016/01/12 PHP
弹出模态框modal的实现方法及实例
2017/09/19 PHP
PHP实现用户登录的案例代码
2018/05/10 PHP
laravel 时间格式转时间戳的例子
2019/10/11 PHP
基于PHP实现解密或加密Cloudflar邮箱保护
2020/06/24 PHP
jQuery学习笔记之Helloworld
2010/12/22 Javascript
javascript:window.open弹出窗口的位置问题
2014/03/18 Javascript
javascript操作数组详解
2014/12/17 Javascript
JavaScript中的toLocaleLowerCase()方法使用详解
2015/06/06 Javascript
JS实现弹性漂浮效果的广告代码
2015/09/02 Javascript
JavaScript实现网页加载进度条代码超简单
2015/09/21 Javascript
基于Bootstrap漂亮简洁的CSS3价格表(附源码下载)
2017/02/28 Javascript
JS实现图片预览的两种方式
2017/06/27 Javascript
vuejs使用$emit和$on进行组件之间的传值的示例
2017/10/04 Javascript
AngularJS动态添加数据并删除的实例
2018/02/27 Javascript
在Mac下彻底卸载node和npm的方法
2018/05/16 Javascript
Node.js实现一个HTTP服务器的方法示例
2019/05/13 Javascript
详解vite+ts快速搭建vue3项目以及介绍相关特性
2021/02/25 Vue.js
详解Python验证码识别
2016/01/25 Python
利用python爬取斗鱼app中照片方法实例
2017/12/03 Python
python中int与str互转方法
2018/07/02 Python
Python3爬虫爬取百姓网列表并保存为json功能示例【基于request、lxml和json模块】
2018/12/05 Python
Python分析最近大火的网剧《隐秘的角落》
2020/07/02 Python
Python Tricks 使用 pywinrm 远程控制 Windows 主机的方法
2020/07/21 Python
pytorch加载语音类自定义数据集的方法教程
2020/11/10 Python
乔丹诺(Giordano)酒庄德国官网:找到最好的意大利葡萄酒
2017/12/28 全球购物
Molton Brown美国官网:奢华美容、香水、沐浴和身体护理
2020/09/02 全球购物
服务承诺口号
2014/05/22 职场文书
化学专业大学生职业生涯规划范文
2014/09/13 职场文书
2014年前台个人工作总结
2014/11/14 职场文书
2016年教师节感恩寄语
2015/12/04 职场文书