javascript中,substr | slice、substring的区别

本文介绍了一种特定格式数据的处理方法,展示了如何从包含日期和时间的字符串中提取所需信息,通过三种不同的JavaScript方法:slice、substring和substr进行操作。

假如有一种数据,格式为 平年2018/12/12 08:51PM,如何获取字符串2018/12/12 08:51

const str = '平年2018/12/12 08:51PM'; // '2018/12/12 08:51'.length === 16
// 第一种 slice, 看文档吧...
console.log(str.slice(2, -2));

// 第二种 substring(i1,i2), 从下标i1 ~ i2#之间#的字符,注意是之间,i2 === 目标字符下标 + 1
console.log(str.substring(2, 18)); // 平年2018/12/12 08:51 -> 最后一个1的下标是17,所以i2 === 18

// 第三种 substr(i,n), 从下标i开始,截取n个字符,不推荐使用,因为不是标准规范
console.log(str.substr(2, 16));

/* substring、substr关于负数 */
/**
 * substring(i1,i2)
 * 均不接受负数, 如果传入负数其实也有值返回,我想是内部做了处理
 * */
console.log(str.substring(2, -2) === str.substring(0, 2));
console.log(str.substring(-2) === str.substring(0));


/** substr(i1,n)
 * 如果n < 0, 那么 n === 0, 意思就是不接受负数, 传入负数会被当做0
 */
console.log(str.substr(-7, 5)); // 08:51
console.log(str.substr(-2)); // PM

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值