ので、我々は我々が
// get paragraphs, and filter it to match only ones greater than 100 in length
$('p').filter(function(){
if ($(this).text().length > 100 && $(this).text().length < 150)
return true
else
return false
// get the `text` of the paragraph, and replace everything after a period after 100 words
}).text().replace(/(.{100,150})\..+$/,'$1')
正規表現を使用して作業しているかを見ることができます。これは、あなたのために働くはずですが、あなたのコードをポストする必要があります/
、キャプチャ((...)
)で区切られた任意の文字( .
)に続いて100~150回({100,150}
)、続いて(エスケープ\
).
のいずれかの文字の後に任意の文字.
を1回以上(+
)、最後に)。最初の文字をキャプチャして、.
(100〜150文字)にします。
編集:ケースで、それはあなたに便利です...
これは、質問と全く同じではなく、それはstart
値よりも短い場合、文字列を返す、またはそれをチョップ.
のstart
とlimit
の間にあるか、一致しない場合はlimit
にチョップするだけです。
/**
* @returns string Text from inside matched element (or concatenated elements)
* but cute off after the start, and before the limit on any available `.`
* or returns short strings, or cuts off at limit where there is no match
*/
$.fn.cutNicely = function(start, limit){
var regex = new RegExp("(.{" + start + "," + limit + "}\\.).+$")
return this.text().substr(0,limit).replace(regex,'$1')
}
// usage:
$('p').cutNicely(80,150)
jqueryプラグインを検索しましたか?私は同様の機能を持つプラグインを見てきましたが(正確にはそうではないにしても)、残念ながら私は名前を覚えていません。これらのプラグインがあなたのニーズを正確に満たしていない場合は、開始するのが良いポイントかもしれません。 –