js substr 与 substring 有什么区别吗

在 JavaScript 中,substrsubstring 是用于提取字符串的两个方法,它们的功能类似,但有一些区别:

1. substr(start, length) 方法:

  • 参数

    • start:必需。要提取的子字符串的起始位置。如果为负数,表示从字符串末尾开始计数。
    • length:可选。要提取的字符数。如果省略或为负数,则提取到字符串的末尾。
  • 返回值

    • 返回从指定位置开始的指定长度的子字符串。
  • 示例

    javascriptCopy Code
    var str = "Hello, world!";
    console.log(str.substr(1, 4)); // 输出 "ello"
    console.log(str.substr(-6));    // 输出 "world!"

2. substring(start, end) 方法:

  • 参数

    • start:必需。要提取的子字符串的起始位置。如果为负数,会被当作 0。
    • end:可选。要提取的子字符串的结束位置(不包括该位置的字符)。如果省略或为负数,会被当作字符串的长度。
  • 返回值

    • 返回位于两个指定下标之间的子字符串。
  • 示例

    javascriptCopy Code
    var str = "Hello, world!";
    console.log(str.substring(1, 4)); // 输出 "ell"
    console.log(str.substring(4));    // 输出 "o, world!"

区别总结:

  • substr 的第二个参数是要提取的字符数,而 substring 的第二个参数是要提取的子字符串的结束位置。
  • substr 允许第一个参数为负数,表示从字符串末尾开始计数;而 substring 不允许负数参数,会被当作 0。
  • 当 start 参数大于 end 参数时,substr 会将它们交换,而 substring 会将负数参数视为 0。
posted @ 2024-04-20 15:05  cclon  阅读(80)  评论(0编辑  收藏  举报