likes
comments
collection
share

Js中substr,substring,slice截取字符串的异同

作者站长头像
站长
· 阅读数 4

概述

今天在写程序的时候发现js中slice也能用来截取字符串,以前都是用substr或substring,于是想着拿它们来对比一下,它们都可以接受两个参数,第一个是开始截取的位置,默认为0,第二个下文具体介绍验证代码地址:github.com/fanxuewen/e…

一、只传第一个参数

当第一个参数为正数,它们是没有区别的

let str='好好学习,天天向上';
console.log('substr---:',str.substr(2));
console.log('substring:',str.substring(2));
console.log('slice----:',str.slice(2))

Js中substr,substring,slice截取字符串的异同 当第一个参数为负数时,对于substring如果参数小于 0 或为 NaN,则被当作 0,而substr和slice则是从后向前数。

let str='好好学习,天天向上';
console.log('substr---:',str.substr(-2));
console.log('substring:',str.substring(-2));
console.log('slice----:',str.slice(-2));

Js中substr,substring,slice截取字符串的异同

二、两个参数都传

两参数都为正数,且第二个于第一个时。substr是从第一个参数开始的位置起进行截取,第二个参数代表截取的长度;而substring和slice的两个参数表示截取位置的索引,包括开始,但不包括结尾

let str='好好学习,天天向上';
console.log('substr---:',str.substr(2,4));
console.log('substring:',str.substring(2,4));
console.log('slice----:',str.slice(2,4));

Js中substr,substring,slice截取字符串的异同 两参数都为正数,且第二个于第一个时。通过和上面的对比可以看出substr的第二个参数总是代表的是截取的长度;substring的两个参数表示的是截取的索引(结果只包含索引值小的);slice的两个参数都是正数且第二个参数小于第一个时会返回空(注意当第二参数是负数,代表的是从后向前数,如果数过来的索引大于第一个参数,还是截取的包括开始但不包括结束的字符串哟)。

let str='好好学习,天天向上';
console.log('substr---:',str.substr(2,1));
console.log('substring:',str.substring(2,1));
console.log('slice----:',str.slice(2,1));

Js中substr,substring,slice截取字符串的异同

其他情况自行验证........