js substr 與 substring 有什麼區別嗎

cclon發表於2024-04-20

在 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。

相關文章