当前位置: 首页 > 面试题库 >

如何获得文本区域中的行数?

景景胜
2023-03-14
问题内容

我想计算一个文本区域中的行数,例如:

line 1
line 2
line 3
line 4

应该最多计数4行。基本上按一次Enter键即可将您转到下一行

以下代码无法正常工作:

var text = $("#myTextArea").val();   
var lines = text.split("\r");
var count = lines.length;
console.log(count);

无论有多少行,它始终为“ 1”。


问题答案:

我已经将line和lineCount方法实现为String原型:

String.prototype.lines = function() { return this.split(/\r*\n/); }
String.prototype.lineCount = function() { return this.lines().length; }

显然,在IE9中split方法不会在字符串的末尾(或textarea的innerText属性)计算回车符和/或换行符,但在Chrome
22中会对其进行计数,从而产生不同的结果。

到目前为止,当浏览器不是Internet Explorer时,我已经通过从行数中减去1来做到这一点:

String.prototype.lineCount = function() { return this.lines().length - navigator.userAgent.indexOf("MSIE") != -1); }

希望有人有更好的RegExp或其他解决方法。



 类似资料:
  • 问题内容: 我有一个textarea,我想知道我是用JavaScript还是光标在textarea的最后一行还是textarea的第一行。 我想到先获取第一个换行符和最后一个换行符的位置,然后再获取光标的位置。 是否可以在文本区域内获取光标位置? 您是否有更好的建议来确定我是在文本区域的第一行还是最后一行? 除非JavaScript如此简单,否则首选jQuery解决方案。 问题答案: 如果没有选择

  • 问题内容: 我正在尝试制作自己的 WYSIWYG 编辑器。有什么办法,如何获取用户在textarea中选择的文本? 例如,如果用户选择了某个单词然后单击按钮,那么我如何找出选择了哪个文本? 我正在使用 jQuery 。 问题答案: 尝试使用jquery-fieldselection插件。 您可以从这里下载。也有一个例子。

  • 问题内容: 我正在尝试在react中创建一个文本编辑器。有人知道如何从textarea中获取所选文本,以便可以将样式应用于所选文本。我知道我们可以在javascript中使用window.getSelection,但我很想知道是否有其他方法可用于此功能? 问题答案: 是的,有一种方法可以做到这一点,特别是在React中。实现该目标的方法如下。 步骤1:-在您的textarea ui元素中使用ref

  • 问题内容: 我正在寻找可以限制行数的JavaScript(用户指的是某些文本由用户按键盘上的Enter键结束),该用户可以在textarea中输入内容。我找到了一些解决方案,但它们根本无法正常工作或表现得很奇怪。最好的解决方案是可以完成这项工作的jquery插件- 类似CharLimit,但是它应该能够限制文本行数而不是字符数。 问题答案: 这 可能会 有所帮助(可能最好使用jQuery,onDo

  • 问题内容: 我知道保存文本区域时,可以使用nl2br()或str_replace来将/ n更改为br标签等。但是,我不确定如何在文本区域中插入换行符。我似乎找不到很多关于将那些带有换行符的数据放回文本区域的信息。 例如,我有一个表单,用户可以在其中更新字段。因此,用户可以输入: 将其保存到数据库后,将另存为: 现在,当用户在页面刷新后返回该表单时,通过从数据库中获取数据,所有字段将自动使用其先前的