substr(beginIndex,length)
截取从开始位置的指定长度的字符串,返回的是字符串,没有 length时,会默认截取到最后
不会影响原字符串
substring(beginIndex,endIndex)
截取从开始位置到结束位置(不包括结束位置)的字符串,没有 endIndex时,会默认截取到最后
不会影响原字符串
参数不能为负数,但是传入负数还是会有相应的结果返回
beginIndex为负数,endIndex为正数时,返回的是 0到endIndex(不包括endIndex)的字符串
beginIndex为正数,endIndex为负数时,返回的是 0到beginIndex(不包括beginIndex)的字符串
slice(beginIndex,endIndex)
截取从开始位置到结束位置(不包括结束位置)的字符串,没有 endIndex时,会默认截取到最后
不会影响原字符串
快速记忆
substr 短,所以对应短的单词 length
substring 长,所以对应长的单词 endIndex
var str = '0123456789';
console.log(str.substr(2));//23456789,没有第二个参数时,默认截取到最后
console.log(str.substring(2));//23456789,没有第二个参数时,默认截取到最后
console.log(str.slice(2));//23456789,没有第二个参数时,默认截取到最后
console.log(str.substr(2,6));//234567,第二个参数为长度
console.log(str.substring(2,6));//2345,第二个参数为结束下标(不包括)
console.log(str.slice(2,6));//2345,第二个参数为结束下标(不包括)
// substring不接受参数为负数
console.log(str.substring(-3,6));//012345,第一个参数为负时默认从下标为 0 开始
console.log(str.substring(4,-6));//0123,第二个参数为负时,默认从下标为 0 开始到 给出的第一个参数的位置(不包括)结束
console.log(str.substring(-1,-3));//为空
console.log(str);//0123456789,不改变原字符串的长度