嗨,我正在一些需要具有这种功能的textarea上工作:我进入config最大行数和每个行数的最大字符数。但我想不出任何将文本拆分为该配置值的算法。这很容易,但是我必须考虑到用户可以自己破坏文本,应该包括在内...有人可以帮我吗?
另请注意,我没有使用等宽字体。
我编写了一些代码,这些代码介绍了我要实现的目标:
splitIntoLines:function (str, lines, maxCharactersPerLine) {
var strLen = str.length,
counter = maxCharactersPerLine,
newStr = '';
if (str.length > 0) {
for (var i = 0; i < strLen; i++) {
newStr += str[i];
counter -= 1;
if (str[i] === '\n' || str[i] === '\r\n' || counter < 0) {
counter = maxCharactersPerLine;
}
if (counter === 0 && this.countLines(newStr) < lines) {
newStr += this.newLine;
}
}
}
if(newStr.length > this.maxChars){
newStr = newStr.substring(0, this.maxChars)
}
return newStr;
}
此函数称为每个keyUp事件。但是我认为这不是最好的方法,并且存在一些错误。
最佳答案
简单..同时给textarea定义行和cols属性到该textarea像
<textarea rows="10" cols="30"></textarea>
关于javascript - Textarea将文本分为行和列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17043359/