zukucode
主にWEB関連の情報を技術メモとして発信しています。

JavaScript 文字列の長さ(バイト数)を取得する

JavaScriptで文字列の長さを取得します。

length

str.legnthで文字列の長さを取得できます。

var str = 'abcde';
console.log(str.legnth); // 5

var str2 = 'あいうえお';
console.log(str2.legnth); // 5

バイト数で取得

バイト数で計算したい場合は以下のようにします。

String.prototype.bytes = function () {
  return(encodeURIComponent(this).replace(/%../g,"x").length);
}

var str = 'abcde';
console.log(str.bytes()); // 5

var str2 = 'あいうえお';
console.log(str2.bytes()); // 15

Shift_JISで半角1バイト全角2バイトで計算

Shift_JISで単純に半角1バイト全角2バイトで計算したい場合は以下のようにします。

String.prototype.bytes = function () {
  var length = 0;
  for (var i = 0; i < this.length; i++) {
    var c = this.charCodeAt(i);
    if ((c >= 0x0 && c < 0x81) || (c === 0xf8f0) || (c >= 0xff61 && c < 0xffa0) || (c >= 0xf8f1 && c < 0xf8f4)) {
      length += 1;
    } else {
      length += 2;
    }
  }
  return length;
};

var str = 'abcde';
console.log(str.bytes()); // 5

var str2 = 'あいうえお';
console.log(str2.bytes()); // 1o

関連記事