1

在 JavaScript 文本编辑器中,每行接受的字符总数为 65。我想将一行中接受的字符数更改为 35,而不更改文本编辑器的总字符长度 (65)。

因此,如果用户输入第 36 个字符,尽管每行字符长度为 65,但光标应该转到第二行。每行只能接受 35 个字符。

4

1 回答 1

1

只能假设您谈论的是 TEXTAREA html 标记,在这种情况下,您最好的选择是使用 JavaScript 正则表达式替换插入新行,您可以将其附加到 OnChange 事件。

编辑这个 JS 小提琴似乎工作。我使用了“keyup”事件而不是“change”。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 回答