JavaScriptプログラムに関する各種メモ書き

JavaScriptで文字列を指定バイト数で切り取る

JavaScriptを使って長すぎる文字列を指定バイト数で切り取って「...続きを読む」みたいにするには以下のようにします。

function substr(text, len, truncation) {
  if (truncation === undefined) { truncation = ''; }
  var text_array = text.split('');
  var count = 0;
  var str = '';
  for (i = 0; i < text_array.length; i++) {
    var n = escape(text_array[i]);
    if (n.length < 4) count++;
    else count += 2;
    if (count > len) {
      return str + truncation;
    }
    str += text.charAt(i);
  }
  return text;
}

使い方

var text = '長い長い日本語の文字列。English English English ';
var text2 = substr(text, 10, '...続きを読む');
alert('text2:' + text2);

関連エントリー

No.980
11/05 11:39

edit

日本語