フィードの表示文字数を制限するjavascript関数

文字列を指定数に切り詰める関数として 確か javascript には truncate() が用意されている筈とのうろ覚えで、 しかし使ってみればそんなメソッドをないとデバッガに怒られ続ける始末、 確り調べてみればそれは prototype.js に用意されている関数だったのでした、お恥ずかしい。

それと云うのも本ブログは2011年4月18日の記事 ノープログラミングXMLフィードのJSONP変換方法 で表示したフィードの description が生の儘ですからひどく冗長で記事的にも只のサンプルが邪魔な印象を与えると思い、 文字数を限定する必要があると感じたからです。

さて、ではどうしようと更にグーグル先生に相談した処、 JavaScriptでマルチバイト文字列を決まった長さで省略する方法 なるドンピシャの記事を紹介されました。 この記事によれば…

スポンサーリンク

やはり、文字列の切り出しは少々面倒な旨、記されています。 併せて有り難いことにサンプルスクリプトが掲載されていますから、 利用させて貰うことにしました。 これで prototype.js を新たに読み込まなくて済みます。 その結果得られる表示が下のものになります。

    随分と画面がシンプルになった印象を与える気がします。 見通しも好く感じられるんじゃないでしょうか? description(第一引数)は120バイトに制限(第二引数)し、 文字数制限が発生した場合の代替文字には 三点リーダー(第三引数)として与えてあります。

    なお、サンプルスクリプトは掲載時のコピー切れや、 HTMLエンティティの問題などで本ブログ上では上手く動かない部分がありましたので、 少々手直ししました。 下の赤字で記してある箇所になります。

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

    1件のコメント

    1. 自作RSSフィードの時間表示のカスタマイズ

      随分とフィードの表示としてはまともになって来たかなと感じている2011年4月19日の本ブログ記事フィードの表示文字数を制限するjavascript関数ですが、まだ大事なものが欠けていました。それは時間表示です。フィードに含まれる時間データをそのまま表示するのも無粋だなと思

    コメントは受け付けていません。