文から 3 つの単語以外をすべて削除し、その 3 つの文の後に jquery を使用して 3 つのドットを追加したいと考えています。たとえば、文が「定期的に借主を評価します。評価を参照してください」の場合、その中の「借主を定期的に参照してください。評価を参照してください。評価を参照してください。このように表示したいです。 」 . "私が試したのはここのコードです
4 に答える
Javascriptは後読みではなく先読みのみをサポートしています...しかし、はい、回避策があります
これはあなたのために働くでしょう...
var str="How are you doing today?";
regexp = new RegExp('(' + str.match(/(\w+\s){2}\w+/g)+ ')?.*'); //fetches first 3 words and makes regural expression to lookbehind this positively
var output = str.replace(regexp, function($0, $1){ //mimicks positive lookbehind
return $1 ? $1 + '...' : $0;
});
document.writeln(output );
更新-これは「お元気ですか..」のみで機能しました....以下のものを使用してください
これは、サポートされていないため、javascriptで否定的および肯定的な後読みを模倣するための非常に優れたチュートリアルです...
Javascript は先読みのみをサポートします
http://blog.stevenlevithan.com/archives/mimic-lookbehind-javascript
更新 - これはあなたの例のようなものでうまくいきます
var str="We evaluate our borrowers on a periodic basis. See our evaluationsWe evaluate our borrowers on a periodic basis. See our evaluationsWe evaluate our borrowers on a periodic basis. See our evaluations";
var first_three = str.match(/(\w+\s){2}\w+/);
regexp = new RegExp('(' + first_three[0] + ')?.*'); //fetches first 3 words and makes regural expression to lookbehind this positively
var output = str.replace(regexp, function($0, $1){ //mimicks positive lookbehind
return $1 ? $1 + '...' : $0;
});
document.writeln(output);
および実行中の jsFiddle http://jsfiddle.net/Rpq7b/2/
これを実現するには、css ルールtext-overflow
を使用できます。必要な結果を得るために使用できるクラスは次のとおりです。
.prevent-overflow {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis
}
white-space: nowrap;
要素の端に到達したときに、テキスト フォームが新しい行に折り返されるのを停止します。overflow:hidden
要素の境界外にテキストが表示されないように指示し、テキストが切り取られるたびにテキストの最後にtext-overflow: ellipsis
配置するようブラウザに指示します ( text-overflow @ MDNを参照)。...
その中に含まれるテキストを切り取る寸法を持つ要素に適用します。
その使用法を示すためにjsfiddleを作成しました。
注: jsfiddleには要素 ( )の末尾に div が含まれていたため<div style="clear:both"></div>
、省略記号が機能しなくなりました (このjsfiddleclear:both;
を参照)。代わりに div 全体に適用するか、その目的を達成する別の方法を見つけることをお勧めします<div>
。
次の機能を試してください。
function myfunction(val)
{
temp = val.split(' ');
if(val.length >= 2)
{
val = temp[0] + ' ' + temp[1] + ' ' + temp[2] + ' ..';
}
return val;
}
私はこれがうまくいくはずだと思います
var yourText = " We evaluate our borrowers on a periodic basis",
result = yourText.replace(/^(.{15}[^\s]*).*/, "$1");
alert(result);
注:15
コード内の を適切な数に変更してみてください。
省略記号を取得するには、result
+を追加できます"…"