在达到特定字符限制前缀时在文本编辑器中自动输入

时间:2013-03-12 11:56:31

标签: javascript text editor

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

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

1 个答案:

答案 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");
};