【问题标题】:Textarea split text into rows and colsTextarea 将文本拆分为行和列
【发布时间】:2013-06-11 11:49:43
【问题描述】:

嗨,我正在处理一些需要具有这种功能的文本区域:我进入了配置最大行数和每行数的最大字符数。但我想不出任何将文本拆分成这个配置值的算法。这很容易,但我必须考虑到用户可以自己破坏文本,这应该包括在内......有人可以帮我吗?

还请注意,我没有使用等宽字体。

我已经编写了一些代码来展示我想要实现的目标:

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 事件都会调用此函数。但我认为这不是最好的方法,而且它有一些错误。

【问题讨论】:

  • 您期望的最终结果是什么,您从什么 HTML 开始?

标签: javascript jquery textarea


【解决方案1】:

简单.. 同时给 textarea 定义 rows 和 cols 属性给该 textarea 像

<textarea rows="10" cols="30"></textarea>

【讨论】:

  • 这在字体为等宽字体时有效,但我使用的不是 Arial
  • 我认为这不能回答问题,但我根本无法理解这个问题。请问:你认为被问到了什么?
  • 他需要根据配置值分隔文本
  • “我进入配置最大行数和每行最大字符数”这将简单地从这个解决方案中得出,这就是我给出这个解决方案的原因
  • 是的,但对我来说这个解决方案不起作用,因为我不使用等宽字体
【解决方案2】:

试试这个

    <script type="text/javascript">
    $(document).ready(function () {
        var max_line = 4, max_char = 10;
        $('#addAccordion').click(function (event) {
            var lines = $('#cmt_content').val().split('\n');
            for (var i = 0; i < lines.length; i++) {
                if (lines[i].length > max_char) {
                    alert('character length is more than specified');

                }
            }
            if (lines.length > max_line) {
                alert('new line is not allowed');

            }
        })
    });

</script>
<div>
    <textarea id="cmt_content" rows="10" cols="60"></textarea>
    <br>
    <input id="addAccordion" type="button" value="ADD COMMENT" />
</div>

【讨论】:

    猜你喜欢
    • 2017-02-08
    • 1970-01-01
    • 2016-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-25
    相关资源
    最近更新 更多