【问题标题】:Line break javascript doesn't insert new line "\n"换行 javascript 不插入新行“\n”
【发布时间】:2018-02-28 16:41:20
【问题描述】:

我一直在努力解决整个换行符的问题,并且在这里搜索和研究了我的灵魂。我似乎无法在这里找到我的具体问题的答案。我想从 textarea 中获取输入并将其放入带有新行的数组中。它所做的只是在单词之间添加一个逗号,而且它似乎只在应该在换行符的位置添加多个逗号。当我添加
时,它所做的只是从文本中排除字母 b。

function Wordscount() {
                var pText = document.getElementById("myTextarea").value.split(/[\n <>.,\?]/);
                document.getElementById("text").innerHTML = pText;

当我测试它时,它基本上是这样的:

我是 Javascript 新手,除非这是我们的教授告诉我们使用的方法,否则我不会采用这种解决方案。我在这里真的很沮丧,我只是想掌握这个窍门。

【问题讨论】:

  • 你认为 .split() 在做什么?
  • 也许你应该搜索 \r\n 而不是 \n
  • 我尝试添加\r\n,但没有任何区别。根据我们了解到的,.split() 用于分割字符、单词等。
  • “从文本区域获取输入并将其放入带有新行的数组中” 你认为什么是数组?你期待什么结果?基本上,它看起来如何“正确”,为什么当前结果不正确?
  • 该数组应该具有按字母顺序排列的单词和单词频率。这就是为什么这是不正确的。

标签: javascript html arrays textarea


【解决方案1】:

拆分字符串会将其转换为数组。将数组视为字符串等同于调用yourArray.join(',')。既然不想加逗号,就不要只把数组当成字符串。

如果你想插入 HTML 换行符,那么你需要明确地这样做。

var array_of_lines = document.getElementById("myTextarea").value.split("\n");
var string_of_html = array_of_lines.join("<br>");
document.getElementById("text").innerHTML = string_of_html;

如果您不希望 HTML 特殊字符被视为具有特殊含义,则将每一行转换为文本节点并附加它。

var array_of_lines = document.getElementById("myTextarea").value.split("\n");
document.getElementById("text").innerHTML = "";
while(var text = array_of_lines.unshift()) {
    document.getElementById("text").appendChild(
        document.createTextNode(text)
    );
    document.getElementById("text").appendChild(
        document.createElement("br")
    );
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-02
    • 1970-01-01
    • 2023-03-26
    • 2023-02-06
    • 1970-01-01
    • 2016-07-16
    • 2013-01-04
    相关资源
    最近更新 更多