js截取字符串 slice()、substr() 和 substring()

本文深入解析ECMAScript中slice(), substr()和substring()三种方法,详细介绍如何使用这些方法从字符串中提取子字符串,并探讨在参数为负值时的特殊行为。

ECMAScript 提供了三个基于字符串创建新字符串的方法:slice()、substr() 和 substring()

三个方法会返回被操作字符串的一个子字符串,而且也都接受一或两个参数。第一个参数指定字符串的开始位置,第二个参数(在指定的情况下)表示子字符串到哪里结束

具体来说,slice() 和 substring() 的第二个参数指定的是子字符串最后一个字符后面的位置。而 substr() 的第二个参数指定的是返回的字符数

var stringValue = "hello world";
console.log(stringValue.slice(3));            //lo world
console.log(stringValue.substring(3));        //lo world
console.log(stringValue.substr(3));           //lo world
console.log(stringValue.slice(3, 7));         //lo w
console.log(stringValue.substring(3, 7));     //lo w
console.log(stringValue.substr(3, 7));        //lo w

在传递给这些方法的参数是负值的情况下,它们的行为就不尽相同了。
slice() 方法会将传入的负值与字符串的长度相加
substr() 方法将负的第一个参数加上字符串的长度,而将负的第二个参数转换为0
substring() 方法会把所有负值参数都转换成 0

var stringValue = "hello world";
console.log(stringValue.slice(-3));            //rld
console.log(stringValue.substring(-3));        //hello world
console.log(stringValue.substr(-3));           //rld
console.log(stringValue.slice(3, -4));         //lo w
console.log(stringValue.substring(3, -4));     //hel
console.log(stringValue.substr(3, -4));        //""

注意:substring(3, 0),由于这个方法会将较小的数作为开始位置,将较大的数作为结束位置,因此最终相当于调用了substring(0, 3)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值