Understanding of js interception string method slice, substring, substr

 const test = 'hello'  // 字符串长度为 5
        // string.slice(start, end)  // 提取一个字符串,从起始位置截取,不包含结束位置  start:开始索引  end:结束索引
        // string.substring(start, end) // 提取一个字符串, end不支持负数,从起始位置截取,不包含结束位置  start:开始索引  end:结束索引
        // string.substr(start,len) // 提取一个字符串,从起始位置开始截取,截取 len 个字符

        // slice():
        // 参数一(必须):一个整数,要开始截取字符的下标,如为负则代表从尾部开始截取。(如为负数:加上字符串长度)
        // 参数二(可选):一个整数,要截取字符的数量。如果省略该参数,则默认为字符串长度string.length,即当前字符串的长度。
        console.log(test.substr(2, 3))

        // 1、slice和substring接收的是起始位置和结束位置(不包括结束位置)
        console.log(test.slice(0, 4))      // hell
        console.log(test.substring(0, 4))  // hell

        // 2、substring是以两个参数中较小一个作为起始位置,较大的参数作为结束位置
        console.log(test.substring(4, 0)) // 相当于test.substring(0, 4)  // hell

        // 3、当接收的参数是负数时,slice会将它字符串的长度与对应的负数相加,结果作为参数; substring则干脆将负参数都直接转换为0
        console.log(test.slice(-2))  // 相当于 test.slice(-2 + 字符串长度) => test.slice(3)     // lo
        console.log(test.substring(-2)) // 相当于 test.substring(0)    // hello

        // 4、当slice的第二个参数小于第一个参数时会返回一个空串,
        // 注意:如果有负数参数,要将它与字符串的长度相加
        console.log(test.slice(3, -4)) // 相当于test.slice(3, 1)   // 空串
        console.log(test.substring(3, -4)) // 相当于test.substring(3, 0) => test.substring(0, 3)  // hel

Guess you like

Origin blog.csdn.net/weixin_46611729/article/details/115053506