我正在尝试将文本拆分为拆分textarea数据中的新行。我的当前代码有效,除了一个小要求:结果数组也必须包含空行。
<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行为空。”,“最后一行。”] < / p>
应该是什么:
[“我喜欢吃冰淇淋。狗很快。”,“”,“前一行仅由空格组成。”,“”,“”,“”,“最后3行是空的。” ,“”,“最后一行。”]
答案 0 :(得分:5)
您的.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/);
答案 1 :(得分:1)
除了 geedubb 的回答之外,如果您出于编码原因不想使用反斜杠:
var lines = $('#data').val().split(String.fromCharCode(10));