前端截取字符串:JS截取字符串之substring、substr和slice详
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))
write的返回值</script>
输出:
happy world!
例⼦ 2
在本例中,我们将提取从位置 6 到位置 11 的所有字符:
<script type="text/javascript">
var str="Hello happy world!"
document.write(str.slice(6,11))
</script>
输出:
happy

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。