檢查字串位元數

資料庫有儲存容量限制,這時候需要檢查字串的位元數是不是超出上限。不同編碼方式,中文字的位元數也不同。UTF-8 的話是 3 byte。

javascript 的 string.length 方法回傳的並不是字串的位元數,所以要另外想辦法。

計算字串位元數的其中一個方式是(假設字串只有中文和英文,編碼方式是 UTF-8),把每個中文都用三個英文字母取代(英文字母只佔一個位元)。

function byteLength (string) {
  return string.replace(/[^\x00-\xff]/g, 'xxx').length
}

[^\x00-\xff] 是一個正則表達式,會選出 ASCII 編碼不在 0-255 的文字

參考資料:

Comments

Popular posts from this blog

Alpha Camp 全端開發課程學習心得

在 javascript 用 regular expression 為金額加上千位數分隔符號

shop_platform - sqlalchemy.exc.TimeoutError