限制每行的字符在文本区域(Limiting Characters per Line in a Tex

2019-07-29 11:47发布

我一直在寻找所有周末解决这一奎德里,还没有找到工作正确的解决方案。 我试图给acchieve是限制在一个文本每行charatcers的数量 - 而不是限制他们的相同,但不同数量按我选择的行字符。

例如:

  1. 我想只有4在我的textarea线
  2. 线1,2和3将被限制为24个字符
  3. 4号线将有字符的数量不受限制

这可能与一个textarea,或者是有一个股利或某事做我的另一种方式。 我不知道这在所有的可能性之前已经覆盖,但要找到覆盖这个严格的标准已证明非常困难,我没有那种技能才能acchieve这些结果的实际工作脚本。

谢谢

Answer 1:

下面是你正在试图解决这个问题的一个样本快照:

  • 4条线路中的文本区域(在文本区域本身具有行限制此=“4”)
  • 线1,2,和3被限制为24个字符
  • 4号线将有字符的数量不受限制

textarea的快照:

123456789012345678901234
123456789012345678902333
232323232323232323323232
23232323232323232323236464536543654643

JavaScript的:

$('#your-input').keypress(function() {
     var text = $(this).val();
     var arr = text.split("\n");

     if(arr.length > 5) {
         alert("You've exceeded the 4 line limit!");
         event.preventDefault(); // prevent characters from appearing
     } else {
         for(var i = 0; i < arr.length; i++) {
             if(arr[i].length > 24 && i < 3) {
                 alert("Length exceeded in line 1, 2, or 3!");
                 event.preventDefault(); // prevent characters from appearing
             }
         }
     }

     console.log(arr.length + " : " + JSON.stringify(arr));
});

这可以通过使用按键事件完成。 当按键事件触发时,得到的文本框中的当前值,并使用分裂值到一个数组\n换行符字符作为分隔符。

  • 数组的长度告诉你多少行有。 如果你已经超过了这些原则,我们火警报。
  • 阵列内的每个单独的字符串的长度表示各线的长度。 我们使用一个for循环来检查前3行。 如果超过24的长度,我们火警报。
  • 我们忽略循环的最后一次迭代,因为我们没有到最后一行的长度有关。

这不是设计成一个完整的解决方案,但是这肯定会帮助您了解并为您提供的东西,你可以修改,以满足您的需求。 祝好运!



文章来源: Limiting Characters per Line in a Textarea