在JavaScript文本编辑器中,每行接受的总字符数为65.我想将一行中接受的字符数更改为35,而不更改文本编辑器的总字符长度(65)。
因此,如果用户输入第36个字符,则光标应该转到第二行,尽管每行的字符长度为65.它必须每行只接受35个字符。
答案 0 :(得分: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");
};