1

JavaScript テキスト エディターでは、1 行で受け入れられる合計文字数は 65 です。テキスト エディターの合計文字数 (65) を変更せずに、1 行で受け入れられる文字数を 35 に変更したいと考えています。

そのため、ユーザーが 36 番目の文字を入力すると、1 行あたりの文字の長さが 65 であっても、カーソルは 2 行目に移動する必要があります。1 行あたり 35 文字のみを受け入れる必要があります。

4

1 に答える 1

1

TEXTAREA htmlタグについて話していると想定することしかできません。その場合、JavaScript正規表現置換を使用して、これをOnChangeイベントに添付できる新しい行を挿入するのが最善の策です。

編集このJSフィドルは機能しているようです。'change'の代わりに'keyup'イベントを使用しました。http://jsfiddle.net/sUS5s/

HTML

<textarea id="demo" rows="5" cols="65"></textarea>

JS

$("#demo").keyup(function(event) {
    var txt = $(this).val();
    $(this).val(txt.replace(/([^\r\n]{35})/gm, "$1\r"));
});

単純な正規表現を置換に置き換えます。35個の連続する非改行文字を照合し、それらを自分自身と改行に置き換えます。

これは、前方に入力し続ける場合に機能します。新しい行が歪むことなく前の行などに挿入できるようにするには、もう少し複雑なものが必要です。

jQueryなしで編集

document.getElementById("demo").onkeyup = function() {
    var txt = document.getElementById("demo").value;
    document.getElementById("demo").value = txt.replace(/([^\r\n]{35})/gm, "$1\r");
};
于 2013-03-12T12:00:33.993 に答える