关闭

JS截取字符串之substring、substr和slice详解

时间: 2015-03-04阅读: 152标签: 字符串

本文详细的介绍了JavaScript中substring()、substr()和slice()三个js字符串截取的方法,substring()方法用于提取字符串中介于两个指定下标之间的字符.substr 方法用于返回一个从指定位置开始的指定长度的子字符串。


substring()方法

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

substring(start,end)
参数描述
start必需。一个非负的整数,规定要提取的子串的第一个字符在 stringObject 中的位置。
stop可选。一个非负的整数,比要提取的子串的最后一个字符在 stringObject 中的位置多 1。如果省略该参数,那么返回的子串会一直到字符串的结尾。

返回值 一个新的字符串,该字符串值包含 stringObject 的一个子字符串,其内容是从 start 处到 stop-1 处的所有字符,其长度为 stop 减 start。 说明

substring 方法返回的子串包括 start 处的字符,但不包括 end 处的字符。 如果 start 与 end 相等,那么该方法返回的就是一个空串(即长度为 0 的字符串)。 如果 start 比 end 大,那么该方法在提取子串之前会先交换这两个参数。 如果 start 或 end 为负数,那么它将被替换为 0。


substr 方法

定义和用法 substr 方法用于返回一个从指定位置开始的指定长度的子字符串。 语法

stringObject.substr(start [, length ])
参数描述
start必需。所需的子字符串的起始位置。字符串中的第一个字符的索引为 0。
length可选。在返回的子字符串中应包括的字符个数。

说明

如果start为负数,则start=str.length+start。 如果 length 为 0 或负数,将返回一个空字符串。 如果没有指定该参数,则子字符串将延续到stringObject的最后。

首先,他们都接收两个参数,slice和substring接收的是起始位置和结束位置(不包括结束位置),而substr接收的则是起始位置和所要返回的字符串长度。直接看下面例子:

var test = 'hello world';
alert(test.slice(4,7));             //o w
alert(test.substring(4,7));         //o w
alert(test.substr(4,7));            //o world

这里有个需要注意的地方就是:substring是以两个参数中较小一个作为起始位置,较大的参数作为结束位置。 如:

alert(test.substring(7,4));          //o w

接着,当接收的参数是负数时,slice会将它字符串的长度与对应的负数相加,结果作为参数;substr则仅仅是将第一个参数与字符串长度相加后的结果作为第一个参数;substring则干脆将负参数都直接转换为0。测试代码如下

var test = 'hello world';

alert(test.slice(-3));         //rld
alert(test.substring(-3));     //hello world
alert(test.substr(-3));        //rld
alert(test.slice(3,-4));       //lo w
alert(test.substring(3,-4));   //hel
alert(test.substr(3,-4));      //空字符串

1 注意:IE对substr接收负值的处理有错,它会返回原始字符串。


slice() 方法

定义和用法 slice() 方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。 语法
stringObject.slice(start,end)
参数描述
start要抽取的片断的起始下标。如果是负数,则该参数规定的是从字符串的尾部开始算起的位置。也就是说,-1 指字符串的最后一个字符,-2 指倒数第二个字符,以此类推。
end紧接着要抽取的片段的结尾的下标。若未指定此参数,则要提取的子串包括 start 到原字符串结尾的字符串。如果该参数是负数,那么它规定的是从字符串的尾部开始算起的位置。
返回值 一个新的字符串。包括字符串 stringObject 从 start 开始(包括 start)到 end 结束(不包括 end)为止的所有字符。 说明 String 对象的方法 slice()、substring() 和 substr() (不建议使用)都可返回字符串的指定部分。slice() 比 substring() 要灵活一些,因为它允许使用负数作为参数。slice() 与 substr() 有所不同,因为它用两个字符的位置来指定子串,而 substr() 则用字符位置和长度来指定子串。 还要注意的是,String.slice() 与 Array.slice() 相似。
实例 例子 1 在本例中,我们将提取从位置 6 开始的所有字符:
<script type="text/JavaScript">

var str="Hello happy world!"
document.write(str.slice(6))

</script>
输出:
happy world!
例子 2 在本例中,我们将提取从位置 6 到位置 11 的所有字符:
<script type="text/javascript">

var str="Hello happy world!"
document.write(str.slice(6,11))

</script>
输出:
happy
站长推荐

1.云服务推荐: 国内主流云服务商,各类云产品的最新活动,优惠券领取。地址:阿里云腾讯云华为云

链接: http://www.fly63.com/article/detial/10186

javaScript 如何使用js追加字符串呢?

字符串的操作是任何一门计算机语言都必须面对的问题,那么js中我们该如何对字符串进行相关操作列,下文将一一道来: 常见的字符串追加有以下三种需求:

常用的Js字符串方法

startsWith()检查字符串是否以指定的字符开头,endsWith()检查字符串是否以指定的字符结束,includes()检查字符串是否包含指定的字符,slice()复制字符串的某些部分而不修改原字符串

es6字符串的扩展

字符的 Unicode 表示法;codePointAt(); String.fromCodePoint();字符串的遍历器接口;normalize();includes(), startsWith(), endsWith(); repeat();

20中常用的JavaScript字符串方法

charAt(x)返回字符串中x位置的字符,下标从 0 开始。concat() 方法用于连接两个或多个字符串,此方法不改变现有的字符串,返回拼接后的新的字符串。fromCharcode(c1,c2)转换一组Unicode值转换为字符。

JS数组转字符串方法总汇

JavaScript 允许数组与字符串之间相互转换。其中 Array 方法对象定义了 3 个方法,可以把数组转换为字符串,如表所示。

比较两个带退格键的字符串

从后往前遍历,记录要忽略掉的字符;使用栈,从前往后处理;使用归并排序合并数组的形态,从后往前比较

js 字符串比较大小

数值是合乎常理的操作,其实字符串也可以比较大小;两个字符串比较大小,比较的是组成它们字符的ASCII码的大小,比较原则如下:比较的是字符的ASCII码的大小。

JS字符串首字母都大写的几种方法

正则+replace思路:用正则将字符串拆分为单词数组,并对每个单词进行首字母大写处理。这里简单的把字母、数字、下划线和单撇号都视为了单词成员。

js 字符串转换数字

js 字符串转换数字方法主要有三种: 转换函数、强制类型转换、利用js变量弱类型转换。 js提供了parseInt()和parseFloat()两个转换函数。前者把值转换成整数,后者把值转换成浮点数。

js字符串方法

查找字符串的位置(找到返回字符串首字母的位置,找不到返回-1):截取字符串:slice、substring、substr比较;替换字符串内容;转化为大写或小写;连接两个字符串或多个concat()

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!