字符串截取的方法 slice() substring() substr()-详细对比

字符串截取是js中的常用功能,主要有三种实现方式,使用场景没有限制,只是每个方法的使用规则不同.

具体内容如下:

1.slice()

  • 参数为正时:
    1个参数: 参数表示截取的起始位置. 结束位置默认是字符串长度.
    2个参数: 分别是截取的起始位置和结束位置.

var value = ''hello world";
alert(value.slice(2)); // “llo world”

var value = ''hello world";
alert(value.slice(2, 7)); // “llo w”

  • 参数为负时:
    1个参数: 转换成负参数+字符串长度.
    2个参数 第2个为负: 同上, 转换成负参数+字符串长度.

var value = ''hello world";
alert(value.slice(-2)); // “ld” 转换成value.slice(-2+11);

var value = ''hello word";
alert(value.slice(2, -7)); // “ll” 转换成value.slice(2, -7+11);

  • 特点:
    1.返回的新字符串不包含结束位置.下例中,value.slice(2, 7) 包含下标为2的起始字符‘l’,但不包含下标为7的终止字符‘o’.

var value = ''hello world";
alert(value.slice(2, 7)); // “llo w”

2.substring()

  • 参数为正时(同slice()):
    1个参数: 参数表示截取的起始位置. 结束位置默认是字符串长度.
    2个参数: 分别是截取的起始位置和结束位置.

var value = ''hello world";
alert(value.substring(2)); // “llo world”

var value = ''hello world";
alert(value.substring(2, 7)); // “llo w”

  • 参数为负时: (不接受负参数,一旦有负参数,转换为0)
    1个参数: 转换成0.
    2个参数 第2个为负: 同上, 转换成0.若第1个参数>0,则参数调换位置,从小到大排序.

var value = ''hello world";
alert(value.substring(-2)); // “hello world” 转换成value.slice(0);

var value = ''hello word";
alert(value.substring(2, -7)); // “he” 转换并调换参数位置:value.substring(0, 2);

  • 特点:
    1.返回的新字符串不包含结束位置.下例中,value.substring(2, 7) 包含下标为2的起始字符‘l’,但不包含下标为7的终止字符‘o’.

var value = ''hello world";
alert(value.substring(2, 7)); // “llo w”

3.substr()

  • 参数为正时:
    1个参数: 参数表示截取的起始位置. 结束位置默认是字符串长度.
    2个参数: 分别是截取的起始位置和要返回的字符个数.

var value = ''hello world";
alert(value.substr(2)); // “llo world”

var value = ''hello world";
alert(value.substr(2, 7)); // “llo wor” 从下标为2起的7个字符

  • 参数为负时:
    1个参数: 转换成负参数+字符串长度.同slice()
    2个参数 第2个为负: 转换成0.同substring(),但不调整参数位置.

var value = ''hello world";
alert(value.substr(-2)); // “ld” 转换成value.substr(-2+11);

var value = ''hello word";
alert(value.substr(2, -7)); // “” 转换成:value.substr(2, 0); 从下标为2的字符开始,截取长度为0.故返回空字符串.

辨析:

相同点:
1.三者皆返回一个新字符串,原字符串不做改变.
2.传入一个正参数时,三者返回的字符串相同,返回的新字符串都是从参数位置到原字符串长度位置的.

不同点:
1.传入两个正参数时,slice()和substring()返回的字符串相同.第二个参数都表示结束位置,但substr()的表示字符串的个数.
2.substring()不接受负参数,若传入负参数,将被转换成0.
3.substr()传入一个负参数时,与slice()相同,转换成参数+字符串长度.
4.substr()传入两个负参数时,与substring()相同,转换成0.但substring()会将参数从小到大排序,substr()不会.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值