3

ユーザーから可変長、通常は 400 ~ 3000 文字の入力文字列を取得するスクリプトがあります。私のスクリプトは文字列に何らかの変更を加え、それを画面に出力する必要があります。ドキュメント書き込みを使用すると、すべてが 1 行に表示されます。ただし、出力行ごとに最大 100 文字にしたいので、ユーザーはテキスト全体を表示するために右に最大 3000 文字スクロールする必要はありません。

これを行うと想像できる唯一の方法は for ループですが、誰かがより良い解決策を知っているでしょうか?

編集:

これは、これを達成するために現在使用している for ループです

document.write("<p>",">Position: ", (lower+1) + "-" + (lower +print_screen.length), "<br/>");

// print only 70 chars per line
for(i = 0; i < print_screen.length; i += 69){
    document.write(print_screen.substring(i, i+69), "<br/>");
};

document.write("</p>");
4

2 に答える 2

3

コンテナに次の CSS を使用します。

.longtext {
    white-space: -moz-pre-wrap !important;  /* Mozilla, since 1999 */
    white-space: -pre-wrap;      /* Opera 4-6 */
    white-space: -o-pre-wrap;    /* Opera 7 */
    white-space: pre-wrap;       /* css-3 */
    word-wrap: break-word;       /* Internet Explorer 5.5+ */
    word-break: break-all;
    white-space: normal;
}
于 2013-01-27T14:18:45.507 に答える
2

replaceおよび正規表現を使用して、文字列に区切りを追加できます。これにより、100 文字ごとに改行が追加されます。

document.write(theText.replace(/(.{100})/g, '$1<br/>'));
于 2013-01-27T14:33:46.283 に答える