str.substr(start, len)
。返回切片字符串。不改变原字符串。
const str = '0123456';
console.log(str.substr(1, 4));
str.substring(start, end)
和str.slice(start, end)
- 相同点:
(1)参数都是(start, end),且不包含end。
(2)第二个参数可以不填,表示从start到最后。
(3)返回切片字符串,不改变原字符串。
(4)若start = end,返回空。
console.log(str.slice(1, 4));
console.log(str.substring(1, 4));
console.log(str.substring(1));
console.log(str.slice(1));
console.log(str.slice(1, 1));
console.log(str.substring(1, 1));
- 不同点
(1)若substring
的end < start,会自动交换start和end。
若slice
的end < start,返回空。
(2)substring
的start和end必须为非负整数,如果是负数就被当作0。
slice
的start和end都可以是负数,表示从倒数第几个开始。
若slice
的end为0,则返回空。
console.log(str.substring(1, 3));
console.log(str.substring(3, 1));
console.log(str.slice(1, 3));
console.log(str.slice(3, 1));
console.log(str.substring(1, -2));
console.log(str.slice(1, -3));
console.log(str.slice(-3, -1));
console.log(str.slice(-3, 0));