字符串的截取方法:slice、substring、substr

三大截取字符串的方法:slice、substring、substr

slice(start,end):[start,end) 从start位置开始,截取到end位置,end取不到

    var str = "helloWorld!"
    var s = str.slice(3);//未指定end参数,则返回从start到结尾的字符
    console.log(s);//loWorld!

    var s = str.slice(3, 6);//[3,6) 从start位置开始,截取到end位置,end取不到
    console.log(s);//loW

    //    start参数为负数,则从字符串的尾部开始算起,-1为倒数第一个字符,-2为倒数第二个字符,从前往后截取
    var s = str.slice(-3, 11);
    console.log(s);//ld!

    var s = str.slice(-4, -2);//end参数为负数,从字符串的尾部开始算起,从前往后截取
    console.log(s);//rl

    var s = str.slice(3, -3);
    console.log(s);//loWor

substring(start, end):[start, end) 从start位置开始,截取到end位置,end取不到

    var s = str.substring(3);//未指定end参数,则返回从start到结尾的字符
    console.log(s);//loWorld!

    var s  = str.substring(3, 6);
    console.log(s);//loW

    // substring:若start参数为负数,则该参数会被改成0
    var s = str.substring(-3, 11);//变为 str.substring(0, 11);
    console.log(s);//helloWorld!

    //  若start比end大,substring方法会在截取前先交换两个参数
    var s = str.substring(3, -3);//变为 str.substring(-3, 3); -> str.substring(0, 3);[0, 3)
    console.log(s);//hel

    var s = str.substring(-4, -2);//(0, -2) -> (-2, 0) -> (0, 0)
    console.log(s);//空字符串

substr(start, length):从start位置开始,截取length个字符

    var s = str.substr(3);//未指定length参数,则返回从start到结尾的字符
    console.log(s);//loWorld!

    var s = str.substr(3,6);
    console.log(s);//loWorl

    var s = str.substr(-3, 11);//start参数为负数,则从字符串的尾部开始算起,-1为倒数第一个字符,-2为倒数第二个字符,从前往后截取
    console.log(s);//ld!
    console.log(s.length);//3

    var s = str.substr(3, -3);//length如果传入负数相当于0
    console.log(s);//为空

    var s = str.substr(-4, -2);//length如果传入负数相当于0
    console.log(s);//空

slice和substring:在传入的参数为负数时,不一样,传入参数为正数时,是等效的

slice、substring与substr的区别:

slice
  • 若start参数为负,则从字符串的尾部开始算起,-1为倒数第一个字符,-2为倒数第二个字符,从前往后截取
  • 若end参数为负,从字符串的尾部开始算起,从前往后截取
substring
  • 若start参数为负数,则该参数会被改成0
  • 若start比end大,substring方法会在截取前先交换两个参数
substr
  • 若start参数为负数,则从字符串的尾部开始算起,从前往后截取
  • 若length为负数相当于0

slice、substring与substr的相同点:

  • 若未指定第二个参数值,则返回从start到结尾的字符

转载于:https://www.cnblogs.com/libai123/p/6945737.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值