slice(start[, end])与substring(start[, end])--返回指定区间内的子字符串

40 阅读1分钟

slice 方法

语法:

str.slice(start[, end])
  • start:提取开始的位置。如果是负数,表示从字符串末尾开始计算。例如,-1 表示最后一个字符。
  • end(可选) :提取结束的位置(不包含该位置)。如果省略,默认为字符串的长度。

示例:

let str = "Hello, World!";
console.log(str.slice(7));      // 输出: "World!" (从索引7开始到结束)
console.log(str.slice(0, 5));   // 输出: "Hello" (从0到4)
console.log(str.slice(-6));      // 输出: "World!" (从倒数第6个字符开始到结束)
console.log(str.slice(-6, -1));  // 输出: "World" (从倒数第6个到倒数第2个)

substring 方法

语法:

str.substring(start[, end])
  • start:提取开始的位置。如果大于字符串长度,将返回空字符串。
  • end(可选) :提取结束的位置(不包含该位置)。如果省略,默认为字符串的长度。

示例:

let str = "Hello, World!";
console.log(str.substring(7));      // 输出: "World!" (从索引7开始到结束)
console.log(str.substring(0, 5));   // 输出: "Hello" (从0到4)
console.log(str.substring(7, 12));  // 输出: "World" (从7到11)
console.log(str.substring(12, 7));  // 输出: "World" (参数交换,返回从7到11)

总结

  • slice 可以接受负数索引,并且仅用一个参数时,表示从该位置到字符串结束,如果 start 大于 end,则会返回一个空字符串
  • substring 不支持负数索引,单个参数时也表示从该位置到字符串结束,但如果 start 大于 end,则会自动交换startend的值继续查找。