1. ホーム
  2. angularjs

[解決済み】AngularJSで文字列の長さを制限する

2022-04-04 21:58:56

質問

次のようなものがあります。

<div>{{modal.title}}</div>

文字列の長さを20文字程度に制限する方法はありますか?

さらに良い質問ですが、文字列を切り詰めて表示するように変更する方法はありますか? ... 20文字以上の場合、最後に表示されるのでしょうか?

解決方法は?

編集 の最新バージョンは AngularJS が提供する limitTo フィルター .

が必要です。 カスタムフィルタ このように

angular.module('ng').filter('cut', function () {
        return function (value, wordwise, max, tail) {
            if (!value) return '';

            max = parseInt(max, 10);
            if (!max) return value;
            if (value.length <= max) return value;

            value = value.substr(0, max);
            if (wordwise) {
                var lastspace = value.lastIndexOf(' ');
                if (lastspace !== -1) {
                  //Also remove . and , so its gives a cleaner result.
                  if (value.charAt(lastspace-1) === '.' || value.charAt(lastspace-1) === ',') {
                    lastspace = lastspace - 1;
                  }
                  value = value.substr(0, lastspace);
                }
            }

            return value + (tail || ' …');
        };
    });

使用方法

{{some_text | cut:true:100:' ...'}}

オプション

  • wordwise (boolean) - trueの場合、単語の境界でだけカットされます。
  • max (integer) - テキストの最大長、この文字数までカットします。
  • tail (文字列、デフォルト: ' ...') - 入力にこの文字列を追加します。 文字列がカットされた場合、その文字列を表示します。

別解 : http://ngmodules.org/modules/angularjs-truncate (by @Ehvince)