嗨,我正在一些需要具有这种功能的te​​xtarea上工作:我进入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/

10-09 14:35