html 如果文本区域中有空行,则为2个换行符

cunj1qz1  于 2022-11-27  发布在  其他
关注(0)|答案(1)|浏览(253)

我试图为一个行计数器(文本编辑器)获取一个textarea的行数,但是如果textarea中有一个空行,就会添加两个新行。输出如下:

["// Hello World!","","","The line above was empty","","","Same here!","The line on the bottom of this one is empty!","",""]

我的代码:

function getLines() {
  var textValue = document.querySelector('#editor').value;
  var lines = textValue.split("\n");
  console.log(lines);
}

应某人的请求,HTML如下:

<div id="visible" contenteditable="true"
    onkeyup="updateLineCount()">// Hello World!</div>
    <textarea id="code-editor">

基本上,我计划添加语法高亮显示,这样div就可以编辑内容,JS将div中的内容发送到textarea,只是为了计算代码行。下面是完成此操作的JS:

textarea.value = document.querySelector("#code-editor").innerText;
zujrkrfu

zujrkrfu1#

您遇到的问题与提取contenteditable div的innerText值并将其放入<textarea>有关。这就是额外换行符\n的来源。
除非你需要使用<textarea>,否则我会直接从contenteditable div中获取行数。这里唯一奇怪的是,在innerText的最后添加了一个额外的换行符\n,但这可以使用.split(0, -1)删除。
第一个

相关问题