const stringValue = 'hello world'
// slice(a,b):截取字符串(包左不包右)
//参数1 a : 从下标为 a 的位置开始截取
//参数2 b (可选): 到下标为 b 的位置结束, b 值为空的时候表示截取到最后
console.log(stringValue.slice(3));//'lo world' 从下标为3的位置开始截取,截取到最后
console.log(stringValue.slice(3, 7));//'lo w' 从下标为3的位置开始截取,截取到下标为7的位置,注意包左不包右
//substring(a,b):截取字符串(包左不包右)
//参数1 a : 从下标为 a 的位置开始截取
//参数2 b (可选): 到下标为 b 的位置结束, b 值为空的时候表示截取到最后
// 注意⚠️:当substring有两个参数的时候,默认将较小的值作为参数1,较大的值作为参数2,例如:stringValue.substring(3,0)===stringValue.substring(0,3)
console.log(stringValue.substring(3, 0) === stringValue.substring(0, 3));//true
console.log(stringValue.substring(3));//'lo world' 从下标为3的位置开始截取,截取到最后
console.log(stringValue.substring(3, 7));//'lo w' 从下标为3的位置开始截取,截取到下标为7的位置,注意包左不包右
// substr(a,b):截取字符串
// 参数1:从下标为 a 的位置开始截取
// 参数2:要截取 b 的长度,b 值为空的时候表示截取到最后
console.log(stringValue.substr(3));//'lo world' 从下标为3的位置开始截取到最后
console.log(stringValue.substr(3, 7));//'lo worl' 从下标为3的位置开始截取,截取的长度为7
//==========================================================
// 然而当参数中出现负数时,三个方法的行为又不同了
// slice(a,b)
// 将所有负数参数值都当成字符串的长度加上负数值得到的结果作为新的参数
console.log(stringValue.slice(-3));//'rld' : 参数为11-3: stringValue.slice(8) 从下标为8的的位置开始截取到最后
console.log(stringValue.slice(-5, -2));//'wor' : 参数为11-5,11-2: stringValue.slice(6,9) 从下标为6的的位置开始截取到下标为9的位置
// substring(a,b)
//将所有的有负数参数值都转换为0,并且会默认将较小的值作为参数1,较大的值作为参数2,例如:stringValue.substring(3,0)===stringValue.substring(0,3)
console.log(stringValue.substring(3, -4));//'hel' : stringValue.substring(3, 0)即stringValue.substring(0, 3),从下标为0的位置开始截取到下标为3的位置
console.log(stringValue.substring(-3, -4))//'' : stringValue.substring(0, 0),从下标为0的位置开始截取到下标为0的位置,所以是空字符串
// substr(a,b)
// 第一个负参数当成字符串的长度加上负数值得到的结果作为新的参数,第二个参数转换为0
console.log(stringValue.substr(3, -4));//'' : stringValue.substr(3, 0),从下标为0的位置开始截取长度为0,所以是空字符串
字符串的截取方法slice(),substring(),substr()用法及区别
于 2021-12-19 21:35:31 首次发布