js字符串:让你在开发中更便捷的截取字符串

应用场景:在我们前端web日常开发中,常常需要对字符串进行一些操作,比如字符串的截取。在一段字符串中,截取我们所需要的内容。

1.slice(beginIndex[,endIndex])方法

beginIndex:当beginIndex为正数时:表示开始截取字符串的下标位置。
当beginIndex为负数时:字符串的长度加上beginIndex,如果结果为正数,就表示开始截取字符串的下标位置。如果结果为负数:表示从下标0开始截取。(必传,截取的内容包含该下标对应的内容)
endIndex:当endIndex为正数时:表示截取字符串结束的位置。
当beginIndex为负数时:字符串的长度加上beginIndex,如果结果为正数,就表示截取字符串结束的位置。如果结果为负数,截取的字符串为空。(选传。截取的内容不包含该下标对应的内容)
注:参数beginIndex和endIndex截取的内容相当于数学中的区间,beginIndex时闭区间,endIndex时开区间:[beginIndex,endIndex)
返回值:截取到的字符串(对原本字符串没影响)

		var a = 'abcde'
		
        console.log(a.slice(0))  		
        // 结果:abcde
        // 原因:从字符串的下标0一直截取到结束

	    console.log(a.slice(-1))
        // 结果:e
    	// 原因:字符串的长度:5,5+(-1)=4,从下标4开始截取到结束 
        
        console.log(a.slice(0, 2))        
        // 结果:ab
        // 原因:从字符串的下标0截取到下标2,但不包含下标2的字符 
       
    	console.log(a.slice(0, -1))
    	// 结果:abcd
    	// 原因:字符串的长度:5,5+(-1)=4,从下标0开始截取到下标为4
    	
    	console.log(a.slice(0, -6))
    	// 结果:空白
    	// 原因:字符串的长度:5,5+(-6)<0,返回值为空

2.substring(indexStart[,indexEnd])方法

substring()需要注意一下六点:

  • substring()提取出来的字符串包含indexStart下标对应的内容,但是不包含indexEnd下标对应的内容
  • 如果两个参数的值一样(即:indexStart=indexEnd),substring()返回一个空字符串
  • 如果indexEnd省略不写,substring则从indexStart对应的下标一直截取到字符串的结尾
  • 如果indexStart或者indexEnd小于0或者时NaN,就会被当作0来处理
  • 如果indexStart或者indexEnd大于string.length,就会被当作string.length来处理。
  • 如果indexStart的值大于indexEnd,他们两个的值就会相互交换。
    var a = 'abcde'

    console.log(a.substring(0,2))
    // 结果:ab
    // 原因:从下标0开始截取,到下标2结束,但是截取的内容包含开始下标0对应的内容,不包含结束下标2对应的内容

    console.log(a.substring(1,1))
    // 结果:空字符串
    // 原因:由于indexStart等于indexEnd,他们两个组成的时空区间,所以返回空字符串。
    
    console.log(a.substring(0))
    // 结果:abcde
    // 原因:由于不写indexEnd,则从indexStart一直截取到末尾

    console.log(a.substring('asdasd'))
    // 结果:abcde
    // 原因:由于传入的参数不是数字,所以'asdasd'会被当作0来处理

    console.log(a.substring(-3))
    // 结果:abcde
    // 原因:由于传入的参数小于0,所以-3会被当作0来处理

    console.log(a.substring(0,100))
    // 结果:abcde
    // 原因:字符串的长度为5,而indexEnd为100,大于字符串的长度,所以会被当作5来处理

    console.log(a.substring(5,0))
    // 结果:abcde
    // 由于indexStart大于indexEnd,所以他们两个位置互换,变成a.substring(0,5)

3.substr(start[,length])方法

substr()需要注意一下四点:

  • 如果substring()什么参数都不传,就会返回原本的字符串
  • 如果start大于或者等于字符串的长度,则返回一个空的字符串
  • 如果start为负数,则加上字符串的长度,得到的结果如果大于等于0,则得到的结果就会被当作start来处理,如果结果小于0,则start则会被当作0来处理
  • 如果length为0或者负数,则返回一个空的字符串。
  • start参数:截取字符串的下标,截取的内容包含该下标对应的内容
  • length参数:截取字符串的长度
        var a = 'abcde'

        console.log(a.substr())
        // 结果:abcde
        // 原因:由于什么都不传,就返回原本的字符串

        console.log(a.substr(6))
        console.log(a.substr(5, 2))
        // 两个结果都为:空字符串
        // 原因:由于start的值大于或者等于字符串的长度5,所以返回的是空字符串

        console.log(a.substr(-1))
        // 结果:e
        // 原因:字符串的长度5+(-1)=4,从下标4截取到末尾

        console.log(a.substr(-6))
        // 结果:abcde
        // 原因:字符串的长度5+(-6)=-1<0,所以start的值被当作0来处理

        console.log(a.substr(0, 3))
        // 结果:abc
        // 原因:从下标0开始截取,截取长度为3的字符串

        console.log(a.substr(0, 0))
        console.log(a.substr(0, -1))
        // 两个结果都为:空字符串
        // 原因:length的长度小于等于0,所以截取的字符串没有长度
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值