javascript - 通过新行(包括空行)将textarea中的文本拆分为javascript数组

标签 javascript jquery arrays split newline

我正在尝试用新行拆分 Splitting textarea data 中的文本。我当前的代码有效,除了一个小要求:生成的数组还必须包含空行

<script>
$(function(){
    var lines = [];
    $.each($('#data').val().split(/\n/), function(i, line){
        if(line){
            lines.push(line);
        }
    });
    console.log(lines);
});
</script>


<textarea id="data">
I like to eat icecream. Dogs are fast.

The previous line is composed by spaces only.



The last 3 lines are empty.

One last line.
</textarea>

目前的结果是:

["I like to eat icecream. Dogs are fast.", " ", "The previous line is composed by spaces only.", "The last 3 lines are empty.", "One last line."]

应该是什么:

["I like to eat icecream. Dogs are fast.", " ", "The previous line is composed by spaces only.", "", "", "", "The last 3 lines are empty.", "", "One last line."]

最佳答案

您的 .split 将包含\n,但是当 line 为假时,您可以只推送一个空字符串...

$(function(){
    var lines = [];
    $.each($('#data').val().split(/\n/), function(i, line){
        if(line){
            lines.push(line);
        } else {
            lines.push("");
        }
    });
    console.log(lines);
});

这是一个工作示例:JSFiddle

输出:

["I like to eat icecream. Dogs are fast.", 
"",  "The previous line is composed by spaces only.",  
"",  "",  "", 
"The last 3 lines are empty.",  
"",  "One last line."]

或者简单地按照上面的评论建议(我假设你的例子已经被简化,你需要在 .each 循环中做一些其他的事情):

var lines = $('#data').val().split(/\n/);

JS Fiddle

关于javascript - 通过新行(包括空行)将textarea中的文本拆分为javascript数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28241954/

相关文章:

java - 转换 Java 数组

javascript - 将 C# 自定义数组传递给 JavaScript

arrays - 如何在 Swift 中合并不同对象的数组

javascript - Three.js 中定向灯的阴影范围

Javascript Canvas 更改绘图颜色

javascript - 为什么我的回调函数收到未定义的参数值?

javascript - window.open 滚动条在 Chrome 中不起作用

javascript - 如果内容与另一个 div 匹配,则隐藏 li 项目

javascript - 有条件地将数据从封闭 View 传递到部分 View

javascript - 文件输入触发更改事件两次(或更多)