substring()
和 substr()
都是 JavaScript 字符串對象的方法,用于截取字符串。它們的區別在于:
參數不同:substring()
方法接受兩個參數,分別表示起始位置和結束位置(不包括結束位置對應的字符),而 substr()
方法接受兩個參數,第一個參數表示起始位置,第二個參數表示要截取的字符個數。
負數處理方式不同:當傳入負數參數時,substring()
方法會將其視為 0,而 substr()
方法則將其視為相對于字符串末尾的偏移量。
下面是一些具體的例子:
var str = "hello world";
console.log(str.substring(3, 7)); // 輸出 "lo w"
console.log(str.substr(3, 4)); // 輸出 "lo w"
console.log(str.substring(7, 3)); // 輸出 "lo w"(起始位置和結束位置會自動調整)
console.log(str.substr(7, -2)); // 輸出 ""(負數參數轉換為 0)
console.log(str.substring(-3, 8)); // 輸出 "hello "(負數參數轉換為 0)
console.log(str.substr(-3, 2)); // 輸出 "rl"(-3 表示倒數第三個字符,2 表示截取兩個字符)
需要注意的是,由于 substring()
和 substr()
方法都是截取字符串的操作,因此如果傳入的參數超出了字符串的長度范圍,它們都會自動調整參數以適應字符串的長度。但是這種行為可能會導致一些意想不到的結果,因此在使用這兩個方法時需要特別小心。