簡體   English   中英

將textarea中的文本按新行(包括空行)拆分為javascript數組

[英]Splitting text in textarea by new lines (including empty lines) into javascript array

我正在嘗試通過新行拆分文本區域數據中的文本。 我當前的代碼有效,除了一個小要求:結果數組也必須包含空行

<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>

目前的結果是:

[“我喜歡吃冰淇淋。狗的速度很快。”,“”,“前一行僅由空格組成。”,“最后3行是空的。”,“最后一行。”]

應該是什么:

[“我喜歡吃冰淇淋。狗的速度很快。”,“”,“前一行僅由空格組成。”,“”,“”,“”,“最后3行是空的。”,“” , “最后一行。”]

您的.split將包含 \\n,但是當line為 falsey 時,您可以推送一個空字符串...

$(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小提琴

除了 geedubb 的回答之外,如果您出於編碼原因不想使用反斜杠:

var lines = $('#data').val().split(String.fromCharCode(10));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM