1

重複の可能性:
jQueryで文字列を切り捨てるにはどうすればよいですか?

jQueryを使用してFacebookからフィードを取得しており、各メッセージ文字列に表示される単語/文字の数に制限を設定したいと思います。

つまり、文字列に100文字を超える文字が含まれている場合は、最も近いスペースで停止し、「...続きを読む」と入力する必要があります。

どうすればこれを簡単に行うことができますか?

4

2 に答える 2

5
function truncateString (string, limit, breakChar, rightPad) {
    if (string.length <= limit) return string;

    var substr = string.substr(0, limit);
    if ((breakPoint = substr.lastIndexOf(breakChar)) >= 0) {
        if (breakPoint < string.length -1) {
            return string.substr(0, breakPoint) + rightPad;
        }
    }

    return string;

}

この関数はここでテストできますjsfiddle

または、このコードを使用してテストします

var text='ワールドワイドウェブ。あなたの平均的な人が通りにいるとき'; console.log(truncateString(text、52、''、'...'));

于 2012-11-25T11:19:57.453 に答える
2

これを行うための単純な関数、純粋でまっすぐなjavascriptを次のように書くことができます。

// Function that truncates string at the 10th char and appends '... (read more)'
// if the string has more than 10 chars
var ellipsize_special = function (string) {
  if (string.length > 10) { 
      return string.substring(0,10) + "... (read more)";
  } else {
      return string;
  }
}

それをテストする:

 var short_str = "apple";
 var long_str = "pineapple juice";
 ellipsize_special(short_str);
 ellipsize_special(long_str);

警告:これは簡単な方法です。正しく省略するには、char制限の前の最初の空白文字で文字列を切り捨てる必要があります。ブラウザは(CSSパラメータを使用して)それをサポートしていますが、必要な「続きを読む」文字列を追加しません。少なくとも最後にOperaで試したときに、ブラウザが正しく機能するようにするのは面倒です。 、Firefox、Chrome、IE..。

于 2012-11-25T10:35:14.107 に答える