在JavaScript文本编辑器中,每行接受的总字符数为65.我希望将一行中接受的字符数改为35,我的文本编辑器的总字符长度(65)。在达到特定字符数限制的过程中,在文本编辑器中执行自动输入
因此,如果用户输入第36个字符,则尽管每行字符长度为65,但光标应该移到第二行。每行只能接受35个字符。
在JavaScript文本编辑器中,每行接受的总字符数为65.我希望将一行中接受的字符数改为35,我的文本编辑器的总字符长度(65)。在达到特定字符数限制的过程中,在文本编辑器中执行自动输入
因此,如果用户输入第36个字符,则尽管每行字符长度为65,但光标应该移到第二行。每行只能接受35个字符。
人们只能假设你在谈论一个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");
};
取决于他是否可以使用jQuery,或者他是否需要常规js – 2013-03-12 12:20:48
@Jeff Shaver - 将它转换为直接的JavaScript很容易/容易 – 2013-03-12 12:38:20
同意。更改了投票。 – 2013-03-12 12:43:08
你相信魔法? – mpm 2013-03-12 11:59:19