重複の可能性:
jQueryで文字列を切り捨てるにはどうすればよいですか?
jQueryを使用してFacebookからフィードを取得しており、各メッセージ文字列に表示される単語/文字の数に制限を設定したいと思います。
つまり、文字列に100文字を超える文字が含まれている場合は、最も近いスペースで停止し、「...続きを読む」と入力する必要があります。
どうすればこれを簡単に行うことができますか?
重複の可能性:
jQueryで文字列を切り捨てるにはどうすればよいですか?
jQueryを使用してFacebookからフィードを取得しており、各メッセージ文字列に表示される単語/文字の数に制限を設定したいと思います。
つまり、文字列に100文字を超える文字が含まれている場合は、最も近いスペースで停止し、「...続きを読む」と入力する必要があります。
どうすればこれを簡単に行うことができますか?
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、''、'...'));
これを行うための単純な関数、純粋でまっすぐな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..。