1. 程式人生 > >比較String.substring()、String.slice()、String.substr()的區別

比較String.substring()、String.slice()、String.substr()的區別

String.substring()、String.slice()、String.substr()這三者都能從String字串中擷取一部分,那麼它們在使用上有什麼不同麼?

一、slice() 方法提取一個字串的一部分,並返回一新的字串。

語法:str.slice(start[, end])  slice() 提取從 start 到 end(不包括)之間的新字串。

二、substring() 方法返回一個字串在開始索引到結束索引之間的一個子集, 或從開始索引直到字串的末尾的一個子集。

語法:str.substring(start[, end]) substring 提取從 start 到 end(不包括)之間的新字串。

`substring` VS `slice` 相同:

  • - 如果 start == end,return ""。
  • - 如果省略 end,提取字元一直到字串末尾。
  • - 如果任一引數大於 length,則被當作 length。

`substring` VS `slice` 不同:

substring

  • - 如果 start > end,則 substring 的執行效果就像兩個引數調換了一樣。
  • - 如果任一引數小於 0 或為 NaN,則被當作 0。
slice
  • - 如果 start > end,return ""。
  • - 如果任一引數為 NaN,則被當作 0。
  • - 如果任一引數為於小 0,則被當作((length - 該引數) > 0 ? (length - 該引數) : 0)。

三、substr() 方法返回一個字串中從指定位置開始到指定字元數的字元。

語法: str.substr(start[, length]) substr 從 start 位置開始提取字元,提取 length 個字元(或直到字串的末尾)。
  • 如果 start >= length,return ""。
  • 如果 start < 0,則被當作((length - 該引數) > 0 ? (length - 該引數) : 0)。
  • 如果 length <= 0,return ""。
  • 如果忽略 length,則 substr 提取字元,直到字串末尾。