1

JavaScriptを使用して、divにテキストを動的に入力しています。div は 200px の固定幅で、テキストはその div に収まるように自動的にフォーマットされます。テキスト自体は json にあり、json にはキャリッジ リターンがありません。

自動生成されたキャリッジ リターンを検出できるかどうかを知りたいです。

私が知りたい理由は、100 を超えるテキストがあるためです。3/2 文字の単語の後にキャリッジ リターンを挿入する場合は、3/2 文字の単語の前に挿入する必要があります。

だから私はフォーラムを見てきましたが、私が試したすべてがうまくいかなかったようです.

test = $("#mydiv").html();
html = test.split(/\r\n|\r|\n/g);
console.log(html.length);

自動的に挿入された改行を認識しなかったかのように、常に長さ 1 を返します。

助けてくれてありがとう、大歓迎です!

4

1 に答える 1

1

短い単語の後の改行を防ぐには、それらの単語の後のスペースを非改行スペースに置き換えます。これは通常のスペースのように表示されますが、この時点でテキストを折り返すことはできません。例えば

mydiv.innerHTML = mytext.replace(/\b(\w{1,3})\s+/g, '$1 ');

{1,3}、長さが 1 ~ 3 文字の英数字の単語を指定します。詳細については、 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressionsを参照してください。独自の要件に合わせて正規表現を調整したい場合。

効果は視覚的に特に喜ばしいものではないと思います。ブラウザーには、非常に洗練されたワード ラッピング アルゴリズムはありません。

于 2013-07-05T21:59:01.123 に答える