slice()
返回一个索引和另一个索引之间的字符串(不改变原字符串),slice(start,end)有两个参数(start必需,end选填),都是索引,返回值不包括end
var str="0123456789";
console.log(str.slice(1,5)) //1234 开始索引为1 结束索引为5(不包括5)
若开始索引
为负数,则将该值加上字符串长度后作为开始索引,如果此时还是负数,开始索引为0。
var str="0123456789";
//总长度为10,开始索引为-9,计算后的开始索引为10+(-9)=1
console.log(str.slice(-9,5))//1234 开始索引为1 结束索引为5(不包括5)
//总长度为10,开始索引为-15,计算后的开始索引为10+(-15)=-5 还为负数 即为0
console.log(str.slice(-15,5))//01234 开始索引为0 结束索引为5(不包括5)
如果开始索引
大于或等于字符串的长度或大于或等于结束索引,则slice()
返回一个空字符串。
var str="0123456789";
console.log(str.slice(15,5))//返回为空
console.log(str.slice(10,5))//返回为空
console.log(str.slice(5,5))//返回为空 开始索引等于结束索引
console.log(str.slice(6,5))//返回为空 开始索引大于结束索引
如果结束索引
省略,截取到字符串的末尾。如果为负,字符串长度加上该值即为结束索引,如果此时还为负数,返回空字符
var str="0123456789";
console.log(str.slice(1))//123456789 开始索引为1 截取所有
console.log(str.slice(1,-5))//1234 开始索引为1 结束索引为10+(-5)=5(不包括5)
console.log(str.slice(1,-15))//返回空字符串 10+(-15)=-5<0
substring()
返回一个索引和另一个索引之间的字符串(不改变原字符串),substring(start,end)有两个参数(start必需,end选填),都是索引,返回值不包括end
var str="0123456789";
console.log(str.substring(1,5)) //1234 开始索引为1 结束索引为5(不包括5)
任意参数小于0都视为0,两参数都为负数或两参数相等返回空字符
var str="0123456789";
console.log(str.substring(-1,5)) //01234 开始索引为0 结束索引为5(不包括5)
console.log(str.substring(-1,-5)) //返回空
console.log(str.substring(1,1)) //返回空
当任意参数大于字符长度,索引为字符长度 ,当开始索引大于结束索引,两索引交换位置
var str="0123456789";
console.log(str.substring(11,15)) //返回空 开始索引为10 结束索引10 相等返回空
console.log(str.substring(1,15)) //123456789 开始索引为1 结束索引为总长度10(截取到最后)
console.log(str.substring(15,1)) //两参数交换未知 同上
substr()
返回从开始位置到指定字符数的长度 substr(start,length)(不改变原字符串),start为索引,length为从开始索引计算的字符长度(start必需,length选填)
var str="0123456789";
console.log(str.substr(1,5))//12345 从开始索引为1往后截取5个长度
当开始索引等于或大于字符串长度返回空
var str="0123456789";
console.log(str.substr(10,5))//返回空
console.log(str.substr(12,5))//返回空
当开始索引为负数,需要加上字符长度在计算,如果此时还是负数,视为0
var str="0123456789";
console.log(str.substr(-5,5))//56789 开始索引为5 往后截取5个
console.log(str.substr(-12,5))//01234 开始索引为0 往后截取5个
当length为0或者负数,返回空,省略此参数截取到最后
var str="0123456789";
console.log(str.substr(-5,0))//返回空字符
console.log(str.substr(-12,-5))//返回空字符
console.log(str.substr(0))//0123456789
console.log(str.substr(-12))// 0123456789 开始索引0