【譯】JS基礎算法腳本:字符串截取及三種字符截取法的差別

若是長度超過給定的最大字符串長度(第二個參數),則截斷字符串(第一個參數)。 以...結尾返回截斷的字符串。code

truncateString("A-tisket a-tasket A green and yellow basket", 11) should return "A-tisket...".
truncateString("A-tisket a-tasket A green and yellow basket", "A-tisket a-tasket A green and 
    yellow basket".length) should return "A-tisket a-tasket A green and yellow basket".
truncateString("A-", 1) should return "A...".

思路

  1. 三種狀況選擇條件語句索引

  2. 字符串截取選用substr,substring,slice字符串

function truncateString(str, num) {
    if(num < 4) {
      return str.substr(0,num) + "...";
    } else if(num<str.length) {
      return str.substring(0,num-3) + "...";
    }
    return str.slice(0,num+3);
}
truncateString("A-tisket a-tasket A green and yellow basket", 11);

相關

str.substr(start[, length])
    str.substring(start[, indexEnd])
    str.slice(start[, indexEnd])
  • start爲負數時,表示起始索引string

    substr:    start => strLength + start
    subsring:  start => 0  (以及strat=NaN時)              
    slice:     start => strLength + start
  • start爲正數,且大於str.length時io

    substr:    str.substr => 空字符
    subsring:  str.substr => str
    slice:     str.substr => str
  • 第二個參數意義function

    substr:   截取長度 (length=0或負值:str.substr => 空字符)
    subsring:  結束索引 (Start > indexEnd,則 substring 的執行效果就像兩個參數調換了同樣)    
    slice:     結束索引
  • 省略第二個參數,均截取到結尾方法

  • substring 和 slice 的截切範圍均不包含indexEndco

有其餘好的方法或思路的道友,不妨在沙發區神交一番。
對文章內容或方法有深入理解,也請指點一二。字符

相關文章
相關標籤/搜索