JavaScript テキスト エディターでは、1 行で受け入れられる合計文字数は 65 です。テキスト エディターの合計文字数 (65) を変更せずに、1 行で受け入れられる文字数を 35 に変更したいと考えています。
そのため、ユーザーが 36 番目の文字を入力すると、1 行あたりの文字の長さが 65 であっても、カーソルは 2 行目に移動する必要があります。1 行あたり 35 文字のみを受け入れる必要があります。
JavaScript テキスト エディターでは、1 行で受け入れられる合計文字数は 65 です。テキスト エディターの合計文字数 (65) を変更せずに、1 行で受け入れられる文字数を 35 に変更したいと考えています。
そのため、ユーザーが 36 番目の文字を入力すると、1 行あたりの文字の長さが 65 であっても、カーソルは 2 行目に移動する必要があります。1 行あたり 35 文字のみを受け入れる必要があります。
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");
};