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

我正在尝试将文本拆分为拆分textarea数据的新行。 我当前的代码工作,除了一个小的要求:结果数组也必须包含空行

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

目前的结果是:

[“我喜欢吃冰淇淋。狗很快。”,“”,“前一行仅由空格组成。”,“最后3行是空的。”,“最后一行。”]

应该是什么:

[“我喜欢吃冰淇淋。狗很快。”,“”,“前一行仅由空格组成。”,“”,“”,“”,“最后3行是空的。”,“” ,“最后一行。”]

你的.split将包含\ n,但是当line false时你可以只推一个空字符串……

 $(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循环中执行其他.each ):

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

JS小提琴