And*_* SK 1 javascript arrays jquery split newline
我正在尝试将文本拆分为拆分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>
Run Code Online (Sandbox Code Playgroud)
目前的结果是:
["我喜欢吃冰淇淋.狗很快.","","前一行仅由空格组成.","最后3行是空的.","最后一行."]
应该是什么:
["我喜欢吃冰淇淋.狗很快.","","前一行仅由空格组成.","","","","最后3行是空的.","" ,"最后一行."]
除了 geedubb 的答案之外,如果您出于编码原因希望避免使用反斜杠:
var lines = $('#data').val().split(String.fromCharCode(10));
Run Code Online (Sandbox Code Playgroud)
你的.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);
});
Run Code Online (Sandbox Code Playgroud)
这是一个工作示例: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."]
Run Code Online (Sandbox Code Playgroud)
或者只是如上面的评论所示(我假设您的示例已经简化,您需要在.each循环中执行其他操作):
var lines = $('#data').val().split(/\n/);
Run Code Online (Sandbox Code Playgroud)